Linux日志查看入门:journalctl、tail与日志轮转实战
出问题先看日志,几乎是 Linux 排查的第一反应。但很多人一打开日志就被海量输出吓住:不知道去哪里找、该用什么命令、哪些行才是关键。本文用最常用的 journalctl、tail、grep 和日志轮转,讲一套可以马上动手的工作流。
一、先分清两类日志
系统服务大多由 systemd 管理,日志集中在 journald,可用 journalctl 查询;传统应用和系统组件还会写 /var/log 下的文本文件,例如 messages、secure、nginx 的 access.log 和 error.log。先问一句:是 systemd 服务,还是某个应用自己写文件?前者用 journalctl,后者直接看文件。
二、journalctl 的常用姿势
查看某个服务最近的日志:journalctl -u nginx -n 100。实时跟随输出,相当于 tail -f:journalctl -u nginx -f。只看报错和更严重的级别:journalctl -p err -u nginx。按时间过滤很实用,例如今天的记录:journalctl --since today -u nginx;也可以写具体时间段:journalctl --since "2026-10-29 09:00" --until "2026-10-29 10:00"。
三、文本日志的查看与过滤
看文件尾部:tail -n 200 /var/log/messages。实时跟随:tail -f /var/log/nginx/error.log。分页查看:less /var/log/messages,在 less 里按 / 输入关键字搜索,按 n 跳到下一个匹配。组合 grep 更精准:grep -i "error" /var/log/nginx/error.log | tail -n 50。注意不要只看第一行报错,往前翻几十行,往往能看到真正的触发点。
四、一个可复用的排查顺序
第一步,确认时间和范围:故障发生在几点,服务有没有重启。第二步,用 journalctl 或 tail 定位报错关键字和第一条异常。第三步,核对配置最近是否改动,服务端口、磁盘、权限是否正常。第四步,复现一次最小操作,再看日志是否出现相同的错误。把每一步的命令和关键日志截图或摘录保存下来,复盘和求助都会快很多。
五、日志轮转与磁盘空间
日志会越写越大,logrotate 会定期压缩、归档和删除旧日志,常见配置在 /etc/logrotate.d/。如果磁盘突然满了,先用 du -sh /var/log/* 找大文件,再检查是哪个服务在刷日志,解决源头后再清理,不要直接删除正在被写入的日志文件,必要时先复制备份。生产环境还要留意日志里可能包含令牌、密码或个人信息,分享前先脱敏。
总结:先分清 journald 还是文本文件,再用 journalctl 按服务、级别和时间过滤,对文本日志用 tail、less、grep 组合定位,最后养成看时间、看第一条异常、留存关键日志的习惯。掌握这套流程,大多数常见故障都能在几分钟内找到方向。
- 点赞
- 收藏
- 关注作者
评论(0)