跳转至

Linux 故障应急排查清单

这份清单面向值班、运维和开发排障场景。建议按顺序排查: 先确认现象,再看资源,再看日志,最后处理服务和配置。

1. 确认系统状态

# 系统版本
cat /etc/os-release

# 内核版本
uname -a

# 当前时间和运行时长
date
uptime

# 最近登录
last -n 10

2. CPU 飙高

# 实时查看资源
top

# 按 CPU 排序查看进程
ps aux --sort=-%cpu | head -n 10

# 查看指定进程线程
ps -T -p <PID>

处理建议:

  • 先确认进程名称、启动用户和启动时间。
  • 不确定进程用途时,不要直接 kill -9
  • Java、Node.js、Python 服务建议结合应用日志判断。

3. 内存不足

# 查看内存
free -h

# 按内存排序
ps aux --sort=-%mem | head -n 10

# 查看 OOM 记录
dmesg -T | grep -i "out of memory"

4. 磁盘空间满

# 查看磁盘空间
df -h

# 查看目录占用
du -sh /* 2>/dev/null

# 查找大文件
find / -type f -size +500M 2>/dev/null

处理建议:

  • 优先清理日志、临时文件、旧备份。
  • 删除前先确认文件是否仍被进程占用: lsof | grep deleted
  • 不建议直接删除数据库、容器、业务上传目录里的文件。

5. 服务启动失败

# 查看服务状态
systemctl status <service>

# 查看最近日志
journalctl -u <service> -n 100 --no-pager

# 查看启动耗时
systemd-analyze blame | head

6. 端口不通

# 查看监听
ss -tulnp

# 测试域名解析
nslookup example.com

# 测试端口
nc -vz 127.0.0.1 8080

# 查看防火墙
firewall-cmd --state 2>/dev/null || ufw status 2>/dev/null

7. 日志快速定位

# 查看系统日志
journalctl -xe --no-pager

# 搜索错误
grep -RniE "error|failed|exception|timeout" /var/log 2>/dev/null | head -n 50

# 实时看应用日志
tail -f /path/to/app.log

高危操作提醒

操作 风险 建议
kill -9 可能造成数据未刷盘 优先正常停止服务
rm -rf 不可恢复删除 先确认路径和备份
清空日志 可能丢失排障证据 先备份或截取关键日志
修改防火墙 可能断开远程连接 保留当前 SSH 会话