在 Linux 环境下“定位日志异常”通常遵循先确定范围 → 再缩小时间 → 最后分析内容的思路。下面给你一套实用方法论和常见命令。
先确认异常类型,有助于选择日志来源:
dmesg、/var/log/messages、journalctltop、vmstat + 系统日志/var/log/secure、auth.log/var/log/messages # CentOS/RHEL
/var/log/syslog # Ubuntu/Debian
/var/log/dmesg # 内核启动信息
journalctl -xe # 最近错误
journalctl -p err # 只看错误
journalctl -u nginx # 某服务
journalctl --since "2024-01-01 10:00" --until "10:30"
grep -i error /var/log/messages
grep -i "failed" /var/log/syslog
sed -n '/10:00/,/10:30/p' /var/log/messages
grep "ERROR" app.log | awk '{print $1}' | sort | uniq -c | sort -nr
tail -f /var/log/nginx/error.log
OOM killer → 内存不足segmentation fault → 程序崩溃connection refused / timeout → 网络或服务问题permission denied → 权限问题No space left on device → 磁盘满df -h
du -sh /var/log/*
df -i
ps aux | grep nginx
strace -p <pid>
用 date + 日志时间,确认异常发生点是否与:
journalctl -xegrep -i error 对应日志如果你能给我:
我可以直接帮你精准定位原因。