Systemd使用journalctl命令统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。
journalctl命令的配置文件是/etc/systemd/journald.conf。
journalctl功能强大,用法非常多,常用的选项有:
journalctl:查看所有日志(默认情况下,只保存本次启动的日志,notice或warning以粗体显示,红色显示error级别以上的信息)
--vacuum-time:指定日志文件保存多久:journalctl --vacuum-time=1years
--disk-usage:显示日志占据的硬盘空间
--vacuum-size:指定日志文件占据的最大空间journalctl --vacuum-size=1G
--no-pager:日志默认分页输出,--no-pager 改为正常的标准输出
-k:查看内核日志(不显示应用日志)
-n:显示尾部指定数字行数的日志,后面不写数字默认为10,如journalctl -n 20
-f:实时滚动显示最新日志,它很像tailf命令,默认显示十行,随着匹配日志的增长而持续输出
--since:查看指定时间的日志:
journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since today
journalctl --since "2015-01-10" --until "2015-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"
-p:查看指定优先级(及其以上级别)的日志,journalctl -p err或者journalctl -p 3,共有8级
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug
-u:查看某个Unit的日志,journalctl -u nginx.service,可以合并显示多个 Unit 的日志:journalctl -u nginx.service -u php-fpm.service,或者不使用选项直接journalctl /usr/lib/systemd/nginx.service来查看
-b:显示指定启动点启动后的所有日志,如上次启动时的(例如,刚刚系统崩溃了):
journalctl -b -0 显示本次启动的日志(默认为本次,-0可以省略)
journalctl -b -1 显示上次启动的日志
journalctl -b -2 显示上上次启动的日志
-o:指定命令的输出格式,journalctl -o short|short-iso|short-percise|short-monotonic|verbose|export|json|json-pretty|json-sse|cat
cat: 只显示信息字段本身。
export: 适合传输或备份的二进制格式。
json: 标准JSON,单行输出。
json-pretty: JSON格式,多行输出,适合人类阅读习惯。
json-sse: JSON格式,经过打包以兼容server-sent事件。
short: 默认syslog类输出格式。
short-iso: 默认格式,强调显示ISO 8601挂钟时间戳。
short-monotonic: 默认格式,提供普通时间戳。
short-precise: 默认格式,提供微秒级精度。
verbose: 显示该条目的全部可用journal字段,包括通常被内部隐藏的字段。
按照筛选条件显示特定进程的日志:
_COMM 显示特定程序的所有消息,例如:journalctl /usr/lib/systemd/systemd
_EXE 进程的可执行文件的路径
_PID 进程的PID,例如:journalctl _PID=1
_UID 运行该进程用户的UID
_SYSTEMD_UNIT 启动该进程的 systemd 单元
以上筛选条件可组合使用,例如:journalctl _SYSTEMD_UNIT=sshd.service _PID=1182
- 本文固定链接: https://www.qingheluo.com/systemdzhongrizhiguanli/
- 转载请注明: qingheluo 于 清河洛 发表