每天必用的几个小命令

##简介

常见工作中,计算机系统的资源主要包括CPU,内存,硬盘以及网络,过度使用这些资源将使系统陷入困境。事实上,当上述服务器系统资源中的任何一个遭遇瓶颈,都会带来服务器性能的下降,典型的症状就是系统运行迟缓。 内存负载:

  • free -m 以MB为单位显示整个系统的内存使用情况;

  • free -h 则自动选择以适合理解的容量单位显示:

  • top -c 命令用来动态查看具体进程消耗的内存空间,以及查看不同进程对于CPU、内存等资源的使用情况。

##cpu负载:

使用w查看系统负载;

默认情况下,top -c命令是以CPU使用率由高到低排序显示进程信息的,在 top 信息界面按 K 键,并输入想要终止的PID,就可以直接杀死指定进程。按M(大写)就可以按照内存占用。

  • sar命令查看当天CPU使用

  • sar -r 查看一天(每隔10分钟)内存的使用量

  • sar -b命令查看当天IO统计记录

##I/O负载:

当磁盘无法写入的时候,一般有以下可能:

  • 文件系统只读
  • 磁盘已满
  • I节点使用完

df -h查看当前已挂载的所有分区及使用情况

当df显示磁盘空间充足,但文件系统却报错自己已满,无法写入时,需要检查是否耗尽了I节点。

df -i 可以查看I节点的使用情况。

一旦遇到I节点用光的情形,有以下几种选择:

  • 删除大量文件

  • 将大量文件移动到其他的文件系统中;

  • 将大量的文件压缩成一个文件;

  • 备份当前文件系统中的所有文件,重新格式化之前的硬盘,获得更多的I节点,再将文件复制回去。

总结:

  • 怀疑 CPU 存在瓶颈,可用 sar -u 和 sar -q 等来查看;

  • 怀疑内存存在瓶颈,可用 sar -B、 sar -r 和 sar -W 等来查看;

  • 怀疑 I/O 存在瓶颈,可用 sar -b、 sar -u 和 sar -d 等来查看;

##网络负载:

1.如果是网络不通,要定位具体的问题,一般是不断尝试排除不可能故障的地方,最终定位问题根源。一般需要查看

  • 是否接入到链路

  • 是否启用了相应的网卡

  • 本地网络是否连接

  • DNS故障

  • 能否路由到目标主机

  • 远程端口是否开放

  1. 如果是网络速度慢,一般有以下几个方式定位问题源:
  • DNS是否是问题的源头

  • 查看路由过程中哪些节点是瓶颈

  • 查看带宽的使用情况

一、网络不通

一般来说当存在网络不通的故障时,访问出端和入端的信息是我们都要收集的,目的在于确定问题所在的主机或者区段。假如a不能访问c而b能够访问c,那么很明显问题出在a或a到c的网络上,而通过同一子网中的几台机器a、b可以正常访问网络,却不能访问c,那么可能是这个网络到c存在问题,或c存在问题。

定位了问题所在的主机,一般有一些步骤来逐渐缩小问题范围,最终定位问题:

链路是否连通 即检查网卡与网络是否物理连通,网线是否插好且连接可用,很多时候不能立刻到机房确定物理连接,可以用命令:

# ethtool ens33

Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

ens33是连接到故障网络的网卡; 如果 Duplex: Full被设置成了Half,可以手动将其改为全双工网络:

# ethtool -s ens33 autoneg off duplex full

使用route -n 命令查看内核路由表

route -n 以IP而不是主机名的形式显示网关等信息,一方面更快,另一方面不涉及DNS,通过route命令查看内核路由,检验具体的网卡是否连接到目标网路的路由,之后就可以尝试ping 网关,排查与网关之间的连接。

如果无法ping通网关,可能是网关限制了ICMP数据包,或者交换机设置的问题。

通常很多网络问题是DNS故障或配置不当造成的,nslookup和dig命令能够用来排查DNS问题,

使用nslookup命令查看DNS解析:

nslookup baidu.com

互谅网是通过大量路由器中继连接起来的,网络的访问就是在这些节点间一跳一跳最终到达目的地,想要查看网络连接,最直接最常用的命令是ping,ping得通,说明路由工作正常,但是如果ping不通,traceroute命令可以查看从当前主机到目标主机的全部“跳”的过程。traceroute和ping命令都是使用ICMP协议包。

使用traceroute追踪路由状况:

traceroute www.baidu.com

  1. 网卡是否工作,包括硬件和驱动:lspci,dmesg

  2. IP参数是否正确设置:ifconfig

  3. 局域网内通信是否正常:ping

  4. 路由信息是否正常:route -n

  5. DNS状态:dig, nslookup

  6. 路由节点状况与延时:traceroute

  7. 服务监听端口:netstat -lnp

  8. 防火墙:iptables, SELinux

转载于:https://my.oschina.net/jiangshanlinux/blog/1518776

<think>好的,用户想要一些综合性的Linux命令题目或案例。首先,我需要回忆用户提供的引用内容,看看有没有相关的信息可以利用。引用1提到了apt-get和rpm的区别,引用2讲文件权限,引用3和4涉及文件操作和用户管理。这些都是Linux命令的常见知识点,可以作为综合题的基础。 用户可能正在准备面试或者考试,需要实际操作的例子来练习。综合题通常结合多个命令,考察解决问题的能力。例如,文件处理、权限管理、用户操作、进程监控等组合使用。 接下来,我需要设计几个综合案例,每个案例包含问题、解决思路和具体命令。要确保涵盖不同的知识点,比如使用grep和awk处理文本,结合find和chmod修改权限,或者使用cron定时任务等。同时,要参考用户提供的引用内容,比如引用3中的sed命令处理文件,引用4中的chown用法,这些都可以融入案例中。 还要注意命令的正确性和常见用法,避免错误。例如,在备份日志时,使用tar命令并排除特定文件;在监控进程时,结合ps、grep和awk提取信息。每个案例的问题需要明确,解决步骤要分点说明,让用户容易理解。 最后,生成相关问题,引导用户进一步学习,比如系统性能分析、日志轮转配置、Shell脚本优化等。这些问题应该与案例相关,帮助用户深入理解。 现在需要检查是否符合用户的要求:使用正确的中文,LaTeX格式,结构清晰,引用正确。比如,在涉及路径的地方使用等宽字体,命令用代码块表示,引用标记在适当的位置。确保没有使用任何Markdown格式,只使用用户允许的格式。</think>### Linux命令综合应用案例 #### 案例一:日志文件分析 **场景**:分析`/var/log/nginx/access.log`,统计访问量前5的IP地址及其请求次数 ```bash cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -5 ``` **解决思路**: 1. 提取IP列(`$1`) 2. 排序后去重统计(`sort | uniq -c`) 3. 按访问量降序排列(`sort -nr`) 4. 取前5名(`head -5`) > 涉及命令:`awk`、管道符组合应用[^3] --- #### 案例二:批量文件权限修复 **场景**:修复`/data/web`目录下所有`.php`文件的权限为644,目录权限为755 ```bash find /data/web -type f -name "*.php" -exec chmod 644 {} \; find /data/web -type d -exec chmod 755 {} \; ``` **解决思路**: 1. `find`命令匹配文件类型(`-type f`/`-type d`) 2. `-name`过滤扩展名 3. `-exec`执行权限修改命令[^2][^4] --- #### 案例三:系统资源监控 **场景**:实时监控内存占用前3的进程 ```bash watch -n 2 "ps -eo pid,%mem,comm --sort=-%mem | head -4" ``` **解决思路**: 1. `ps -eo`自定义输出字段 2. `--sort=-%mem`按内存降序排列 3. `watch`实现2秒刷新[^2] --- #### 案例四:用户登录审计 **场景**:提取过去7天成功登录的用户名、IP和时间 ```bash grep "Accepted password" /var/log/auth.log | grep "$(date -d '7 days ago' +'%b %d')" -A 3 | awk '{print $1,$3,$9,$11}' ``` **解决思路**: 1. 时间范围过滤(`date`命令) 2. 正则匹配登录成功记录 3. `awk`提取关键字段[^3] --- #### 案例五:自动化备份 **场景**:每天凌晨压缩备份`/home/user/docs`目录到`/backup`,保留7天 ```bash 0 2 * * * tar -zcf /backup/docs_$(date +\%F).tar.gz /home/user/docs --exclude=*.tmp find /backup -name "*.tar.gz" -mtime +7 -exec rm {} \; ``` **解决思路**: 1. `cron`定时任务 2. `tar`排除临时文件(`--exclude`) 3. `find`清理过期备份[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值