journalctl介绍

journalctl介绍

journalctl 是 systemd 的日志查看工具,用于查询和显示 systemd 收集的二进制日志(journal)。它集中管理内核、服务、应用程序等输出的日志信息,是 Linux 系统日志分析的核心命令。

常用功能

1. 查看所有日志

journalctl

默认显示所有日志(可能量很大),按时间顺序从旧到新。

2. 查看本次启动以来的日志

journalctl -b
# 或指定启动序号(如上一次启动)
journalctl -b -1

3. 实时跟踪日志(类似 tail -f)

journalctl -f

4. 查看指定单元的日志

journalctl -u nginx.service      # 服务单元
journalctl -u ssh.socket          # socket 单元
journalctl -u user-1000.slice     # slice 单元

5. 按时间过滤

journalctl --since "2025-03-01"
journalctl --until "2025-03-10 15:30:00"
journalctl --since yesterday
journalctl --since "1 hour ago"

6. 按优先级/级别过滤

journalctl -p err          # 只显示错误及以上级别
journalctl -p warning -p notice  # 显示 warning 和 notice

级别:emerg, alert, crit, err, warning, notice, info, debug

7. 查看内核日志

journalctl -k

8. 根据特定字段过滤

journalctl _PID=1234          # 指定进程
journalctl _UID=1000           # 指定用户
journalctl _COMM=sshd          # 指定命令名
journalctl _SYSTEMD_UNIT=nginx.service

9. 控制输出格式

journalctl -o verbose          # 显示所有字段
journalctl -o json              # JSON 格式
journalctl -o json-pretty       # 易读的 JSON
journalctl -o short-full        # 标准格式(含时间戳)

10. 查看日志占用的磁盘空间

journalctl --disk-usage

11. 维护和清理日志

journalctl --vacuum-size=200M        # 保留最近 200M 日志,删除旧的
journalctl --vacuum-time=2weeks      # 保留最近 2 周
journalctl --vacuum-files=5           # 只保留 5 个日志文件

12. 查看最后 n 行

journalctl -n 50

13. 显示日志尾部并持续跟踪(组合)

journalctl -u nginx.service -f -n 10

小贴士

  • journalctl 默认显示当前用户的可见日志(系统日志需 root 权限)。
  • 日志是结构化的,支持丰富的过滤条件,通过 journalctl -o verbose 可查看所有可用的字段名。
  • 使用 man journalctl 查看完整文档。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注