journalctl 常用命令
基本查看
| 命令 | 说明 |
|---|---|
journalctl | 查看所有日志 |
journalctl -e | 跳转到日志末尾 |
journalctl -f | 实时跟踪新日志 |
journalctl -n 50 | 查看最近 50 条日志 |
journalctl --no-pager | 不分页直接输出 |
按时间过滤
| 命令 | 说明 |
|---|---|
journalctl -b | 本次启动以来的日志 |
journalctl -b -1 | 上次启动的日志 |
journalctl --since "2026-03-24 10:00:00" | 指定起始时间 |
journalctl --since "2026-03-24" --until "2026-03-25" | 指定时间范围 |
journalctl --since "1 hour ago" | 最近 1 小时 |
journalctl --since "30 min ago" | 最近 30 分钟 |
journalctl --since yesterday | 从昨天开始 |
journalctl --since today | 从今天开始 |
按服务过滤
| 命令 | 说明 |
|---|---|
journalctl -u nginx | 查看特定服务的日志 |
journalctl -u nginx -u php-fpm | 查看多个服务 |
journalctl -u 服务名 -f | 实时跟踪某服务 |
按优先级过滤
| 级别 | 数字 | 说明 |
|---|---|---|
| emerg | 0 | 系统不可用 |
| alert | 1 | 需立即处理 |
| crit | 2 | 严重错误 |
| err | 3 | 一般错误 |
| warning | 4 | 警告 |
| notice | 5 | 通知 |
| info | 6 | 信息 |
| debug | 7 | 调试 |
| 命令 | 说明 |
|---|---|
journalctl -p err | 只看错误及以上 |
journalctl -p warning | 只看警告及以上 |
journalctl -p err..crit | 指定优先级范围 |
按进程/用户过滤
| 命令 | 说明 |
|---|---|
journalctl _PID=1234 | 按 PID 过滤 |
journalctl /usr/sbin/nginx | 按可执行文件路径过滤 |
journalctl _UID=1000 | 按用户 ID 过滤 |
journalctl _COMM=sshd | 按进程名过滤 |
内核日志
| 命令 | 说明 |
|---|---|
journalctl -k | 仅显示内核消息(类似 dmesg) |
journalctl -k -b | 本次启动的内核日志 |
输出格式
| 命令 | 说明 |
|---|---|
journalctl -o json-pretty | JSON 格式 |
journalctl -o short | 简短格式 |
journalctl -o verbose | 详细格式(含所有字段) |
journalctl -o cat | 仅输出消息内容 |
journalctl -u nginx --since today > /tmp/nginx-log.txt | 导出到文件 |
磁盘空间管理
| 命令 | 说明 |
|---|---|
journalctl --disk-usage | 查看日志占用空间 |
sudo journalctl --vacuum-time=7d | 限制日志保留 7 天 |
sudo journalctl --vacuum-size=500M | 限制日志最大 500MB |
sudo journalctl --vacuum-files=5 | 限制日志文件数量为 5 |
永久配置:编辑 /etc/systemd/journald.conf,设置 SystemMaxUse=500M、SystemMaxFileSize=50M、MaxRetentionSec=1month,然后执行 sudo systemctl restart systemd-journald。
查看启动记录
| 命令 | 说明 |
|---|---|
journalctl --list-boots | 列出所有启动记录 |
journalctl -b -1 | 查看上次启动日志 |
journalctl -b -2 | 查看上上次启动日志 |
实用组合示例
| 命令 | 说明 |
|---|---|
journalctl -u ssh --since today | grep "Failed" | 查找今天的 SSH 登录失败 |
journalctl -b -p err --no-pager | 查看本次启动的错误 |
journalctl -u nginx --since "1 hour ago" --no-pager -o short-iso > /tmp/nginx.log | 导出某服务最近 1 小时日志 |
journalctl -f -u nginx -u php8.5-fpm -u mysql | 实时监控多个服务 |
Last updated on