journalctl 是 systemd 日志查看工具,需结合分页、时间范围(如 -b、--since)、服务过滤(-u)、级别筛选(-p)及实时跟踪(-f)高效使用,并注意权限与持久化配置。

在 Linux 中,journalctl 是 systemd 日志系统的命令行工具,它默认记录所有系统和服务日志(包括内核、启动过程、服务单元、用户会话等),但“查看所有日志”不等于一次性输出全部内容——那样会极其冗长且难以使用。实际操作中,应结合过滤、分页和时间范围来高效查阅。
查看完整日志流(带分页)
直接运行 journalctl 会按时间倒序输出全部可访问日志(从最早到最新滚动显示),但默认启用分页(类似 less)。你可以:
- 用 ↑ / ↓ 键逐行浏览
- 按 Space 翻页,b 回退一页
- 输入 /关键词(如
/error)搜索 - 按 q 退出
按时间范围筛选关键日志
绝大多数排查不需要“所有”,而是“最近一次重启以来”或“过去24小时”。常用选项:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
journalctl --since "2 hours ago"—— 查看两小时内日志 -
journalctl --since today—— 今日零点之后的日志 -
journalctl -b—— 仅本次启动(boot)的日志(最常用) -
journalctl -b -1—— 上一次启动的日志 -
journalctl --since "2024-05-01" --until "2024-05-02"—— 指定日期区间
按服务、单元或来源过滤
缩小范围才能快速定位问题:
-
journalctl -u sshd—— 查看 sshd 服务日志 -
journalctl -u nginx.service—— 查看 nginx 单元日志 -
journalctl _PID=1234—— 查指定进程 ID 的日志 -
journalctl SYSLOG_IDENTIFIER=kernel—— 查内核日志(等价于dmesg) -
journalctl -p err—— 只显示 error 及更严重级别(alert、crit、emerg)
导出或持续跟踪日志
需要保存或实时监控时:
-
journalctl -b > boot-log.txt—— 导出本次启动日志到文件 -
journalctl -f—— 实时跟随新日志(类似tail -f) -
journalctl -u docker -f—— 实时跟踪 docker 服务日志 -
journalctl -o json—— 以 JSON 格式输出,适合脚本解析
注意:普通用户可能无法查看全部日志(尤其涉及其他用户或系统单元),需加 sudo;日志持久化需确保 /var/log/journal/ 存在且 journal 配置为保留(Storage=persistent 在 /etc/systemd/journald.conf 中)。

















