journalctl 是一个用于查看和管理 systemd-journald 服务日志的命令行工具。systemd-journald 是一个系统日志收集和管理的守护进程,它负责收集来自各个服务和内核的日志消息,并将其存储在日志数据库中
#查看运行状态
systemctl status systemd-journald
#日志存放位置
ls -l /var/log/journal/
journalctl --disk-usage #查看日志占用磁盘大小
日志保存多久
journalctl --vacuum-time=180d
journalctl --vacuum-time=1years
日志最大空间
journalctl --vacuum-size=300M
journalctl --vacuum-size=5G
查看所有日志消息:
journalctl
查看最新的日志消息:
journalctl -n 50
按时间倒序查看指定数量的日志消息:
journalctl -n <数量>
#查看内核日志
journalctl _TRANSPORT=kernel
#查看指定服务的日志
journalctl -u docker
#查看指定用户的日志:
$journalctl -u user
#查看特定时间范围的日志
journalctl --since "2024-03-27" --until "2024-03-28"
journalctl --since "1 hour ago"
#查看错误级别及以上的日志
journalctl -p err
日志级别从高到低包括:
emerg (0): 紧急消息,系统无法使用,必须立即采取行动。
alert (1): 需要立即修复,例如硬盘故障。
crit (2): 关键情况,如应用程序组件失败。
err (3): 错误事件,但不影响系统运行。
warning (4): 警告,可能出现潜在问题。
notice (5): 正常但重要的消息。
info (6): 信息性消息,用于监控或调试。
debug (7): 调试信息,用于开发者诊断问题
查看特定单元(unit)的日志消息(如服务):
journalctl -u <单元名称>
过滤特定优先级的日志消息:
journalctl -p <优先级>
查看特定用户的日志消息:
journalctl _UID=<用户ID>
这只是 journalctl 命令的一些示例用法,您可以使用 man journalctl 命令来查看完整的命令文档和更多选项。
#以可读的格式显示日志:
journalctl -o short
#以 JSON 格式显示日志:
journalctl -o json
#以详细格式显示日志:
journalctl -o verbose
#以特定字段的格式显示日志:
journalctl -o field --field=FIELD_NAME
journalctl --disk-usage 查看日志占用磁盘大小
#查看本次启动的所有日志
journalctl -b
journalctl --list-boots 查看每一次启动的分割
journalctl -b -1 上一次启动的日志
查看内核消息:
journalctl -k
查看指定时间范围内的日志消息:
journalctl --since "<起始时间>" --until "<结束时间>"
#查询开始时间
journalctl --since="2019-11-27 14:21:00"
查询一个时间段范围内的日志
journalctl --since="2019-11-27 14:21:00" --until="2019-11-27 14:30:00"
journalctl -f
journal | grep 'foo'