journalctl可通过--since和--until参数按时间范围精确筛选日志,支持自然语言和标准时间格式,时间字符串需加引号,区间为左闭右开;可单独使用任一参数,结合服务、优先级或用户字段进一步过滤,并支持-f实时跟踪新增日志。

journalctl 可以通过时间范围参数精确筛选日志,无需先导出再过滤。
指定起始和结束时间
用 --since 和 --until 组合,支持自然语言和标准时间格式:
journalctl --since "2024-04-01 09:00:00" --until "2024-04-01 12:30:00"journalctl --since "2 hours ago" --until "30 minutes ago"journalctl --since "yesterday" --until "today"
注意:时间字符串需加引号;--until 默认包含截止时刻前的日志,不包含该时刻本身(即左闭右开区间)。
只指定起始或截止时间
单独使用更灵活,适合排查近期问题或回溯历史:
-
journalctl --since "2024-04-05"—— 查当天零点起所有日志 -
journalctl --since "1 hour ago"—— 查最近一小时 -
journalctl --until "2024-04-04 18:00"—— 查该时间点之前的所有日志
常用相对时间词包括:today、yesterday、hour ago、3 days ago、week ago 等。
配合其他条件缩小范围
时间筛选常与服务、优先级或用户结合,提升定位效率:
-
journalctl -u sshd --since "2024-04-01" --until "2024-04-02"—— 查 sshd 服务两天内的日志 -
journalctl --priority=err --since "10 minutes ago"—— 查最近十分钟的错误级别日志 -
journalctl _UID=1000 --since "1 hour ago"—— 查指定用户 ID 的近期日志
可用 _UID、_PID、_COMM 等字段做匹配,用 journalctl -o json | jq 可查看字段结构。
实时跟踪时间段内新增日志
加上 -f 参数可动态追加符合时间条件的新日志(适合监控某段时间窗口内的运行状态):
-
journalctl --since "now" -f—— 从当前时刻开始实时显示 -
journalctl --since "5 minutes ago" -f—— 显示过去五分钟日志,并持续追加新条目
注意:-f 不会重复输出已存在的旧日志,只监听后续写入的内容。











