分析前先固定「字段含义」
不同站点日志格式不同。先 tail -n 5 access.log 确认 IP、时间、方法、URL、状态码、耗时所在列,再写 awk 字段号。
配方 1:5xx 次数
awk '{print $9}' access.log | grep -E '^5' | sort | uniq -c | sort -nr
配方 2:Top 访问 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 20
配方 3:某路径的状态码分布
grep ' /api/order' access.log | awk '{print $9}' | sort | uniq -c | sort -nr
配方 4:压缩历史日志
zgrep 'Upstream timed out' access.log.*.gz | tail
方法建议
- 先用小样本验证字段,再对全量跑。
- 把「命令 + 结论」记到故障单,形成团队共享配方。
- 长期方案仍建议接入专门日志平台;命令行适合应急。