journalctl 是 systemd 的日志查看命令
直接输入 journalctl 会显示所有日志(从当前启动开始),通常输出会非常多,需要配合参数使用。
常用参数速查表
| 参数 | 作用 | 示例 |
|---|
-f | 实时监控(类似 tail -f) | journalctl -f |
-u | 指定服务 | journalctl -u nginx.service |
-p | 指定日志级别 | journalctl -p err |
--since | 从什么时间开始 | journalctl --since "2026-02-21 18:00" |
--until | 到什么时间结束 | journalctl --until "1 hour ago" |
-k | 只看内核日志 | journalctl -k |
-n | 显示最后N行 | journalctl -n 50 |
-r | 反向显示(最新的在前) | journalctl -r |
-o | 输出格式 | journalctl -o json-pretty |
日志级别(-p 参数)
| 级别 | 数字 | 说明 |
|---|
| emerg | 0 | 系统不可用 |
| alert | 1 | 立即处理 |
| crit | 2 | 严重 |
| err | 3 | 错误 |
| warning | 4 | 警告 |
| notice | 5 | 注意 |
| info | 6 | 信息 |
| debug | 7 | 调试 |
实战例子
# 实时监控系统日志
journalctl -f
# 查看nginx今天的错误
journalctl -u nginx.service --since today -p err
# 查看过去1小时的SSH登录
journalctl -u sshd --since "1 hour ago"
# 查看内核错误
journalctl -k -p err
# 查看最后20行,并持续监控
journalctl -n 20 -f
# 查看指定时间段的日志
journalctl --since "2026-02-21 10:00" --until "2026-02-21 12:00"
发表回复