journalctl
查询和浏览 systemd 日志,支持按服务、时间、优先级等条件过滤
语法
journalctl [options]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-u |
按服务单元过滤 | |
常用 |
-f |
实时跟踪日志(类似 tail -f) | |
常用 |
-n |
显示最近 N 条日志 | |
常用 |
--since |
显示指定时间之后的日志 | |
常用 |
-p |
按优先级过滤(emerg/alert/crit/err/warning/notice/info/debug) | |
常用 |
-b |
只显示本次启动的日志 | |
常用 |
示例
实时跟踪 nginx 日志
journalctl -u nginx -f
查看最近一小时的 MySQL 日志
journalctl -u mysql --since '1 hour ago'
查看本次启动以来的所有错误日志
journalctl -p err -b
查看指定日期范围的日志
journalctl --since '2024-01-01' --until '2024-01-02'
搜索 nginx 日志中的 500 错误
journalctl -u nginx --no-pager | grep 500
查看日志占用的磁盘空间
journalctl --disk-usage
技巧
- 日志太多时用 --no-pager 配合 grep 筛选
- journalctl --vacuum-size=500M 清理日志到 500MB 以内
- 支持 JSON 输出:journalctl -u nginx -o json-pretty
- -xe 查看最近日志并附带解释信息,排错常用