Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。该工具是从message这个文件里读取信息。
①查看所有日志
journalctl
②查看内核日志(不显示应用日志)
journalctl -k
③查看系统本次启动的日志
# 查看系统本次启动的日志 journalctl -b journalctl -b -0 # 查看上一次启动的日志 需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志。 journalctl -b -1
④查看指定时间的日志
journalctl --since="2018-10-3018:17:16" journalctl --since "20 minago" journalctl --since yesterday journalctl --since "2020-09-23 22:50:00" --until "2020-09-23 23:20:00" journalctl --since 09:00 --until"1 hour ago" journalctl --since"15:15" --until now
⑤日志显示设置
# 显示尾部的最新10行日志 journalctl -n # 显示尾部指定行数的日志 journalctl -n 20 # 实时滚动显示最新日志 journalctl -f # 在标准输出中显示日志(默认情况下,journalctl 会在 pager 内显示输出结果) journalctl -b -0 --no-pager
⑥查看某个Unit的日志
journalctl -u nginx.service # 只显示今天的 journalctl -u nginx.service --since today # 实时滚动显示 journalctl -u nginx.service -f # 合并显示多个Unit的日志 journalctl -u nginx.service -u php-fpm.service --since today
⑦指定用户的日志
journalctl _UID=33 --since today
⑧显示/清理日志存储设置
# 显示日志当前占用的硬盘空间 journalctl --disk-usage # 可以按照日期清理,或者按照允许保留的容量清理 journalctl --vacuum-size=1G journalctl --vacuum-time=1years
⑨指定日志输出格式
journalctl 能够以多种格式进行显示,只须添加 -o 选项即可。-o 选项支持的类型如下:
- short:这是默认的格式,即经典的 syslog 输出格式。
- short-iso: 与 short 类似,强调 ISO 8601 时间戳。
- short-precise:与 short 类似,提供微秒级精度。
- short-monotonic:与 short 类似,强调普通时间戳。
- verbose:全部字段,包括通常被内部隐藏的字段。
- export:传输或备份的二进制格式。
- json:json 格式,每行一条记录。
- json-pretty:阅读的 json 格式。
- json-sse:经过包装可以兼容 server-sent 事件的 json 格式。
- cat:只显示信息字段本身。
journalctl -u cron -n 1 --no-pager -o json-pretty