systemd 的 journalctl 用法

Systemd 一句话原理

开机后第一个进程(PID 1),把一切资源抽象成 unit.service .mount *.device …),按依赖并发启动;自带日志守护进程 systemd-journald,日志集中存 /run/log/journal(或 /var/log/journal)。

journalctl 20 条常用命令

目的命令
全部日志journalctl
实时 tailjournalctl -f
最近 N 条journalctl -n N
时间倒序journalctl -r
只看今天journalctl --since today
昨天 08:00 到 09:00journalctl --since "yesterday 08:00" --until "yesterday 09:00"
仅内核日志journalctl -k
仅错误级别journalctl -p err
某服务journalctl -u nginx
服务实时journalctl -u nginx -f
上一次启动journalctl -b -1
指定启动journalctl -b $BOOT_ID
列出所有启动journalctl --list-boots
某 PIDjournalctl _PID=1234
某 UIDjournalctl _UID=1000
某主机journalctl _HOSTNAME=web01
UTC 时间journalctl --utc
带解释文本journalctl -x
日志占盘journalctl --disk-usage
清空(删旧日志)journalctl --vacuum-time=30d

取服务名

systemctl list-units --type=service --state=running   # 仅运行
systemctl list-unit-files --type=service              # 全部

组合示例

场景命令
nginx 上次开机期间的错误journalctl -b -1 -u nginx -p err
今天 MySQL 所有警告及以上journalctl --since today -u mysqld -p warning
实时跟踪 kubelet 并显示解释journalctl -u kubelet -f -x
查看 08:00–08:30 内核崩溃journalctl -k --since 08:00 --until 08:30 -b

快速排障 3 步法

  1. systemctl status <服务> → 看是否 running、最后一次退出码。
  2. journalctl -u <服务> -b -p err → 快速定位错误行。
  3. journalctl -xe → 查看最近一次服务启动的完整上下文。

复制→粘贴→完事。

systemd 的 journalctl 用法
https://blog.mxdyeah.com/post/journalctl-usage
本文作者 mxdyeah
发布时间 2025-04-05
许可协议 CC BY-NC-SA 4.0
发表新评论

以下是Google广告,请注意辨别其内容: