在使用Ubuntu或其它基于systemd的Linux发行版时,系统日志是排查问题、监控服务状态的重要工具。而journalctl命令正是查看和管理系统日志的核心工具。本文将手把手教你如何使用journalctl
命令高效地查看、过滤和分析systemd日志
,即使你是Linux新手也能轻松上手。
什么是systemd日志?
自Ubuntu 15.04起,系统默认采用
systemd作为初始化系统(init system),它不仅负责启动和管理服务,还集成了一个强大的日志系统——
journald。该系统会自动收集内核消息、系统服务日志、用户进程日志等,并统一存储在二进制格式的日志文件中(通常位于
/var/log/journal/目录下)。
与传统的文本日志(如
/var/log/syslog)不同,
systemd日志具有结构化、可压缩、支持元数据等优势,且可通过
journalctl命令灵活查询。
基础用法:快速查看日志
最简单的用法就是直接运行:
journalctl
这会显示从系统启动以来的所有日志,按时间顺序排列。由于日志可能非常多,建议结合分页器使用(默认已启用
less)。
常用选项与实战技巧
1. 查看本次启动的日志
只显示当前系统启动后的日志:
journalctl -b
2. 实时跟踪日志(类似tail -f)
动态显示新产生的日志:
journalctl -f
3. 查看特定服务的日志
例如查看SSH服务的日志:
journalctl -u ssh
其中
-u表示指定unit(服务单元)。
4. 按时间范围过滤日志
查看今天日志:
journalctl --since today
查看最近1小时日志:
journalctl --since "1 hour ago"
支持的时间格式非常灵活,如
yesterday、
2024-06-01、
2024-06-01 10:00:00等。
5. 查看内核日志
只显示来自内核的消息:
journalctl -k
高级技巧:组合使用与日志持久化
你可以组合多个选项。例如,查看SSH服务在过去24小时内的日志:
journalctl -u ssh --since "24 hours ago"
默认情况下,
systemd日志是易失的(重启后可能丢失)。若希望日志持久保存到磁盘,需创建日志目录并重启
systemd-journald服务:
sudo mkdir -p /var/log/journalsudo systemd-tmpfiles --create --prefix /var/log/journalsudo systemctl restart systemd-journald
小结
通过本文,你已经掌握了
Ubuntu journalctl命令的基本与进阶用法,能够高效地进行
Linux系统日志管理和
journalctl日志分析。无论是排查服务故障、监控系统行为,还是审计安全事件,
systemd日志查看都是不可或缺的技能。
建议多加练习,尝试不同的过滤条件,你会发现
journalctl远比传统日志工具更强大、更智能!
