1. Linux运维命令速查与故障排查实战指南
作为在Linux系统运维领域摸爬滚打多年的老手,我深知高效排查系统故障的核心在于对关键命令的熟练掌握。本文将分享4类高频Linux命令的实战用法,这些命令都是我日常工作中反复验证过的"救命稻草"。
2. 系统状态监控命令集
2.1 进程管理三剑客
top
命令是查看系统资源使用情况的首选工具。我习惯使用
top -c
显示完整命令路径,
top -u username
监控特定用户进程。更进阶的用法是
htop
,它提供了彩色界面和鼠标操作支持。
ps aux --sort=-%mem | head -10
这个组合命令能快速找出内存占用前十的进程。在实际运维中,我经常用
ps -ef | grep process_name
来精确定位某个服务的运行状态。
重要提示:使用
kill -9强制终止进程前,务必先尝试kill -15发送正常终止信号,避免数据丢失。
2.2 系统负载分析
uptime
命令虽然简单,但能一目了然地显示系统运行时间和平均负载。我通常会结合
vmstat 1 5
查看CPU、内存和IO的实时状态,其中数字1表示1秒刷新一次,5表示采集5次。
free -h
以人类可读格式显示内存使用情况,而
df -h
则用于磁盘空间检查。在排查磁盘IO问题时,
iostat -x 1
是我的首选工具,它能显示详细的磁盘读写统计。
3. 网络故障排查命令组
3.1 基础连通性测试
ping
和
traceroute
是网络排查的入门工具,但很多人不知道
mtr
这个更强大的替代品。它结合了ping和traceroute的功能,能持续监测网络质量。
netstat -tulnp
显示所有监听端口及对应进程,这在排查端口冲突时特别有用。新版本Linux中更推荐使用
ss -tulnp
,它的执行效率更高。
3.2 高级网络分析
tcpdump -i eth0 -nn -vv port 80
这个命令组合可以抓取eth0网卡上80端口的详细通信数据。我经常配合
wireshark
进行更深入的分析。
当需要测试网络吞吐量时,
iperf3
是专业的选择。服务端运行
iperf3 -s
,客户端使用
iperf3 -c server_ip
即可进行带宽测试。
4. 日志分析黄金命令
4.1 实时日志监控
tail -f /var/log/messages
是最基础的日志跟踪命令。我更喜欢使用
multitail
工具,它能同时监控多个日志文件并支持颜色高亮。
grep -E "ERROR|WARN|FATAL" /var/log/app.log
这个正则表达式能快速过滤出关键错误信息。加上
| tail -100
可以只查看最近的100条记录。
4.2 日志统计与分析
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
这个管道组合能统计访问日志中最活跃的10个IP地址。对于大日志文件,可以先使用
zcat
处理压缩文件。
journalctl -u nginx --since "2023-01-01" --until "2023-01-02"
能精确查询指定服务在特定时间段的日志,这在故障回溯时非常有用。
5. 文件系统管理命令
5.1 文件查找与处理
find /var/log -name "*.log" -mtime +30 -exec rm {} \;
这个命令组合能删除/var/log目录下30天前的日志文件。执行前建议先用
-ls
替换
-exec
确认查找结果。
rsync -avz --progress source/ user@remote:/dest/
是我进行文件同步的首选命令。
-a
保持文件属性,
-v
显示详细过程,
-z
启用压缩传输。
5.2 权限与安全
chmod -R 750 /sensitive_dir
递归设置目录权限时,我通常会先用
find /sensitive_dir -type d -exec ls -ld {} \;
检查当前权限。
lsattr
和
chattr
这对命令经常被忽视,但它们能设置文件的隐藏属性。比如
chattr +i important_file
可以让文件无法被修改或删除。
6. 故障排查实战案例
6.1 服务器响应缓慢排查
上周遇到一台服务器响应缓慢的问题,我的排查步骤是:
-
uptime查看负载情况 -
dmesg -T检查内核消息 -
vmstat 1观察系统资源 -
iotop定位磁盘IO瓶颈 -
netstat -s | grep retrans检查网络重传
最终发现是磁盘IO瓶颈导致,通过
iostat -x 1
确认后,调整了应用日志级别解决问题。
6.2 服务端口冲突解决
某次部署时遇到端口冲突,我是这样处理的:
-
ss -tulnp | grep 8080确认端口占用 -
ps -p pid -o cmd查看占用进程详情 - 分析是否需要停止该进程
- 修改新服务配置使用其他端口
- 测试新端口连通性
7. 命令使用技巧与注意事项
-
使用
alias创建常用命令的快捷方式,比如:alias ll='ls -alhF' alias grep='grep --color=auto' -
在脚本中使用
set -euo pipefail可以更严格地处理错误:-
-e:命令失败时立即退出 -
-u:使用未定义变量时报错 -
-o pipefail:管道中任一命令失败则整个管道失败
-
-
使用
tmux或screen运行长时间任务,避免SSH断开导致任务中断。 -
重要操作前先使用
echo测试命令效果,比如:echo rm *.log # 先查看会删除哪些文件 # 确认无误后再执行真实删除 rm *.log -
使用
man -k keyword搜索相关命令,比如man -k "list directory"会列出与目录列表相关的命令。
这些命令和技巧都是我多年运维工作中积累的实战经验,希望能帮助各位提升故障排查效率。记住,熟练使用这些命令的关键不在于死记硬背,而在于理解其工作原理和适用场景。

830

被折叠的 条评论
为什么被折叠?



