在Linux系统中,systemd日志可以说是系统管理员最重要的信息来源之一——从系统启动到日常运行,各种事件、异常、报错全都记录在案。想要高效排查问题,首先得知道怎么查这些日志。下面这几种方法基本覆盖了日常运维的大部分场景,不妨逐个看看。
先说说最常用的工具:journalctl。直接输入这条命令,系统就会把最近的日志记录一股脑儿展示出来。不过,如果日志量很大,这么查其实挺低效的——更实用的做法是配合选项来精准筛选。

比如你想查看某个特定时间段的日志,可以用--since和--until指定起止时间:
journalctl --since '2023-10-01 10:00:00' --until '2023-10-01 12:00:00'
这样就能精准获取两个小时内系统产生的所有日志记录,比手动翻页高效得多。
再比如,有时候你只关心某个特定服务的运行日志,比如网络管理服务。这时候带上-u参数指定服务名称就行:
journalctl -u NetworkManager
输出结果就只显示NetworkManager相关的条目,干净利落,方便快速定位问题。
要是想像tail -f那样实时查看日志更新,那就用-f参数:
journalctl -f
终端会持续追加新产生的日志,非常适合在排查实时故障时使用。
另外,有些场景下需要将日志导出到文件中做离线分析,或者作为故障记录存档。组合使用-b(查看当前引导周期的日志)和-o cat(以原始格式输出)就能实现:
journalctl -b -o cat > /var/log/journal.log
这样当前启动周期的所有日志就以纯文本形式保存到指定路径,方便后续查阅或分享。

最后提一嘴容易被忽视的点:日志文件的权限和磁盘空间管理。systemd日志如果不加限制,累积久了能轻松吃掉好几个G的磁盘空间。建议根据实际需求配置合理的日志轮转策略或者定期清理,别等到磁盘报警了才想起来处理。
掌握这些方法,systemd日志就不再是让人头疼的流水账了——它能够帮你更快定位系统异常,把运维工作做到前面。
