journalctl -b -n 10可查看本次启动最近10条日志,-b -1 -n 10查上次启动日志;-u过滤服务、--since/--until限定时间、-p筛选级别、--grep高亮关键词,并需确认journald持久化配置。

journalctl 查看最近10条启动日志
系统重启后,journalctl 默认显示全部历史日志,但实际排查时往往只想看最新一次启动的日志。直接加 -b 参数就能限定为当前启动(boot)的记录,再用 -n 10 限制行数:
-
journalctl -b -n 10—— 显示本次开机后的最后10条日志 -
journalctl -b -1 -n 10—— 查看上一次启动的最后10条(-1表示倒数第一次启动) - 注意:
-b不等价于“最近”,它严格按 boot ID 划分;如果中间没重启过,-b和默认输出差别不大
按服务名过滤日志(比如 sshd 或 nginx)
查某个服务出问题,别翻全量日志。用 -u 指定 unit 名,journalctl 会自动匹配对应 service、socket、timer 等单元:
-
journalctl -u sshd—— 查看 sshd 服务所有日志(含启动/停止/崩溃) -
journalctl -u nginx.service—— 单元名带.service后缀也可,但通常省略 - 常见陷阱:写成
journalctl -u nginx能运行,但若系统里有nginx.socket或nginx.timer,也会一并拉进来,干扰判断 - 加
-f可实时跟踪:journalctl -u docker -f
按时间范围查日志(避免卡死或漏掉关键时段)
不加时间限制的 journalctl 可能读取几GB数据,终端卡住,还容易错过真正出问题的时间段。用 --since 和 --until 精确控制:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
journalctl --since "2024-05-20 14:30:00"—— 从指定时刻起 -
journalctl --since "2 hours ago"—— 支持自然语言,但注意系统 locale 影响解析(中文环境可能不认 “2 hours ago”) -
journalctl --since today --until "1 hour ago"—— 组合使用,避开最近一分钟的噪音 - 重要:
journalctl默认只读内存中的日志(reboot 后丢失),要查更早的,得确认/var/log/journal/存在且Storage=persistent在/etc/systemd/journald.conf中已启用
日志级别过滤和高亮关键词
默认输出包含 debug、info、warning、error 等所有级别,大量 info 日志会淹没真正的问题。用 -p 降噪:
-
journalctl -p err—— 只显示 error 及以上(err、crit、alert、emerg) -
journalctl -p warning—— 包含 warning、err、crit… 注意不是 “只显示 warning” - 配合
grep做关键词高亮:journalctl -u postgres | grep -i "failed\|timeout",但注意管道会丢失颜色和结构化字段 - 更稳妥的方式是用
--grep(支持正则):journalctl --grep="connection refused",它保留 journal 的原生格式和分页能力
真正难的不是命令怎么写,而是搞清日志来源——同一错误可能出现在 kernel(journalctl -k)、systemd(journalctl -u systemd)、或具体服务日志里。查不到时,先用 journalctl -b | head -20 看开头几行的 timestamp 和 _HOSTNAME,确认日志是否真的被 journald 捕获了。










