在 Linux 中定位日志异常,通常遵循**“先范围 → 再关键字 → 再时间 → 再上下文”**的思路。下面给你一套实用方法,从基础到进阶。
常见日志位置:
/var/log/messages、/var/log/syslog/var/log/secure、/var/log/auth.log/var/log/nginx/、/var/log/app/journalctl
journalctl -u nginx
grep -i error /var/log/messages
grep -i "exception" /var/log/app/app.log
grep -E "error|fail|timeout" /var/log/syslog
grep "ERROR" app.log | grep -v "healthcheck"
journalctl --since "2026-01-21 10:00" --until "2026-01-21 10:30"
sed -n '/Jan 21 10:00/,/Jan 21 10:30/p' /var/log/messages
grep -C 10 "NullPointerException" app.log
grep -B 5 "ERROR" app.log
grep -A 20 "Exception" app.log
grep -c "ERROR" app.log
grep "ERROR" app.log | awk '{print $NF}' | sort | uniq -c | sort -nr | head
tail -f /var/log/app/app.log | grep -i error
less /var/log/app/app.log
/error 搜索n 下一个awk '/ERROR/ {print $1, $2, $3, $0}' app.log
lnav(彩色 + 自动识别日志)grep + jq(JSON 日志)cat app.json | jq 'select(.level=="ERROR")'
优先搜这些:
ERROR
Exception
FATAL
timeout
refused
denied
OutOfMemory
stack trace
journalctl -u xxx --since "10 min ago"grep -i errorgrep -C 20 关键报错如果你有具体日志内容或应用场景(如 Nginx、Java、K8s、数据库),我可以直接帮你写精准命令。