linux journalctl使用详解

时间:2024-03-25 10:07:47
1.概述

​ journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务。journalctl通常用来查询systemd管理的Unit的日志信息。

2.使用方法

$ man journalctl

$ journalctl --help
linux journalctl使用详解

常用方法

$ 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来匹配对应的日志
linux journalctl使用详解

$ 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