Linux 排障命令速查表 - 系统故障排查常用命令大全

服务器出问题时,可靠做法不是回忆某条命令,而是按固定顺序下钻:进程、端口、磁盘、内存、日志。这张表就是那条顺序。进程与负载一组从 uptime 入手——注意 Linux 的 load average 统计的是可运行与不可中断进程数,不是 CPU 百分比——再用 top 排序定位元凶,最后用 ps 拿 PID。端口与网络一组用 ss 与 netstat 查监听、nc 探连通性、dig 与 curl 区分端口不通还是上层服务异常。磁盘与内存一组用 df -h、du -sh 逐层定位大目录、iostat 与 free -m 判断压力在 IO 还是内存。表里标了几处易误判:磁盘满却找不到大文件,多半是进程仍持有已删文件的句柄,靠 lsof +L1 定位后重启;kill 默认发 SIGTERM,卡死再考虑 -9。

系统与运维·共 20 条命令·最后更新 2026-07-21

进程与负载 5

top -c
实时查看进程和负载,c 显示完整命令
ps aux --sort=-%cpu | head
按 CPU 排序看占用最高的进程
ps aux --sort=-%mem | head
按内存排序找内存大户
kill -9 <pid>
强制杀进程,先用普通 kill 不行再上 -9
uptime
快速看 1/5/15 分钟平均负载

端口与网络 5

ss -tlnp
列出监听中的 TCP 端口和对应进程
ss -tlnp | grep :8080
查指定端口被谁占用
curl -v http://127.0.0.1:8080
验证本地服务是否可达,看握手细节
ping -c 4 host
发 4 个 ICMP 探测包查看丢包和往返延迟,判断主机是否可达、链路是否抖动
dig +short example.com
快速查 DNS 解析结果

磁盘与内存 5

df -h
查看各分区磁盘使用率
du -sh * | sort -rh | head
找当前目录下最占空间的子项
free -h
查看内存和 swap 使用情况
lsof +L1
找已删除但仍被进程占用的文件(磁盘满却找不到大文件时用)
iostat -x 1
查看磁盘 IO 压力,需 sysstat

日志与服务 5

journalctl -u nginx -n 200 --no-pager
查看 systemd 服务最近日志
journalctl -f
实时跟踪系统日志
systemctl status nginx
查看服务状态和最近几行日志
tail -f /var/log/app.log
跟踪应用日志文件
dmesg -T | tail
查看内核消息,排查 OOM、硬件错误

提示

  • 磁盘显示满了却找不到大文件,多半是进程占着已删除文件,用 lsof +L1 定位后重启进程。
  • kill 默认发 SIGTERM 让进程优雅退出,先试普通 kill,确认卡死再 kill -9。
  • dmesg 里出现 "Out of memory: Killed process" 说明是 OOM,不是程序自己崩的。
  • ss -s 一行输出汇总本机 socket 统计,负载高时先看它能快速判断连接数是否已接近文件描述符上限。
  • journalctl -p err -S "1 hour ago" --no-pager 直接列出最近一小时内的错误级日志,比翻完整日志再 grep 快得多。
  • iostat -xz 1 输出的 %util 接近 100 表示磁盘饱和,此时加 CPU 并不会变快,先定位是哪个进程在写盘。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年7月21日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们