前言
作为运维工程师,日志分析是故障排查的核心技能。本文分享3个高频使用的日志分析命令,帮助你快速定位线上问题。
1. tail - 实时监控日志
# 实时查看日志末尾
tail -f /var/log/syslog
# 查看最后100行
tail -n 100 /var/log/nginx/access.log
适用场景:故障发生时实时观察日志变化,捕捉异常瞬间。
2. grep - 关键词过滤
# 忽略大小写搜索错误
grep -i "error" /var/log/nginx/error.log
# 显示匹配行的前后3行上下文
grep -C 3 "timeout" /var/log/app.log
# 多关键词匹配
grep -E "error|fail|exception" /var/log/syslog
进阶技巧:
-v反向匹配,排除无关日志-c统计匹配行数--color=auto高亮显示匹配内容
3. journalctl - systemd日志管理
# 查看指定服务日志
journalctl -u nginx.service
# 查看最近50条
journalctl -n 50 --no-pager
# 查看昨天到今天的日志
journalctl --since yesterday
# 实时跟踪
journalctl -f
优势:统一管理系统服务日志,支持时间范围过滤,比传统日志文件更灵活。
实战案例
某次Nginx服务异常,通过以下命令快速定位:
journalctl -u nginx -n 100 | grep -i "error"
发现是配置文件语法错误导致服务启动失败。
总结
tail -f适合实时监控grep适合关键词搜索journalctl适合systemd服务日志
掌握这3个命令,90%的日志分析场景都能覆盖。