1.概述
journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务。journalctl通常用来查询systemd管理的Unit的日志信息。
2.使用方法
$ man journalctl
$ journalctl --help
常用方法
$ journalctl
不带任何选项时,默认输出所有的日志记录
$ journalctl -n [num]
显示最后num行的日志,如果省略num,则默认显示最后10行
$ journalctl -f
实时滚动显示最新日志
$ journalctl -u <unit_name>
显示指定unit的日志,unit_name为具体的unit名称, 如果想合并显示多个unit日志可以用多个-u <unit_name>
$ journalctl -o
设置日志输出的格式,mode的值为(short, short-iso,short-precise, short-monotonic, verbose,export, json, json-pretty, json-sse, ca)
$ journalctl --no-pager
日志默认分页输出,–no-pager改为正常的标准输出
$ journalctl --since
显示从某个时间点之后的数据
journalctl --since=“2020-08-31 10:00:00” #显示2020年8月31日10点以后的数据
journalctl --since “10 min ago” #显示最近10分钟内的日志
journalctl --since today/yesterday #显示今天/昨天以来的日志
journalctl --since “2020-08-31 10:00:00” --until “2020-08-31 11:00:00” #显示某个时间段内的日志(2020-08-31 10点-11点)
#until也可以是以下用法:
–until “1 hour ago”
–until now
$ journalctl -k
查看系统内核日志
匹配
$ journalctl -o json -n 1
可以看到最新的一条日志的json输出格式,我们可以根据json的key和value来匹配对应的日志
$ journalctl _PID=28655
获取指定进程的日志
$ journalctl _UID=33 --since=today
查看指定用户今天的日志
$ journalctl _SYSTEMD_UNIT=cron.service PRIORITY=6
通过系统unit和优先级匹配
查看指定优先级(及其以上级别)的日志
日志优先级共有8级
0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug