JOURNALCTL(1) | journalctl | JOURNALCTL(1) |
NAME¶
journalctl - 检索 systemd 日志
SYNOPSIS¶
journalctl [OPTIONS...] [MATCHES...]
描述¶
journalctl 可用于检索 systemd(1) 日志(由 systemd-journald.service(8) 记录)。
如果不带任何参数直接调用此命令, 那么将显示所有日志内容(从最早一条日志记录开始)。
如果指定了 [MATCHES...] 参数, 那么输出的日志将会按照 [MATCHES...] 参数进行过滤。 MATCHE 必须符合 "FIELD=VALUE" 格式 (例如 "_SYSTEMD_UNIT=httpd.service" ), 参见 systemd.journal-fields(7) 手册以了解日志字段的详细介绍。 如果有多个不同的字段被 [MATCHES...] 参数匹配, 那么这些字段之间使用"AND"逻辑连接, 也就是,日志项必须同时满足全部字段的匹配条件才能被输出。 如果同一个字段被多个 [MATCHES...] 参数匹配, 那么这些匹配条件之间使用"OR"逻辑连接, 也就是对于同一个字段,日志项只需满足任意一个匹配条件即可输出。 最后, "+" 字符可用作 [MATCHES...] 组之间的分隔符,并被视为使用"OR"逻辑连接。 也就是,MATCHE1 MATCHE2 + MATCHE3 MATCHE4 MATCHE5 + MATCHE6 MATCHE7 相当于 ( MATCHE1 MATCHE2 ) OR ( MATCHE3 MATCHE4 MATCHE5 ) OR ( MATCHE6 MATCHE7 )
还可以使用绝对路径作为参数来过滤日志。 绝对路径可以是普通文件,也可以是软连接,但必须指向一个确实存在的文件。 如果路径指向了一个二进制可执行文件, 那么它实际上相当于是一个对 "_EXE=" 字段的匹配(仅匹配完整的绝对路径)。 如果路径指向了一个可执行脚本, 那么它实际上相当于是一个对 "_COMM=" 字段的匹配(仅匹配脚本的文件名)。 如果路径指向了一个设备节点, 那么它实际上相当于是一个对 "_KERNEL_DEVICE=" 字段的匹配(匹配该设备及其所有父设备的内核设备名称)。 在查询时,软连接会被追踪到底,内核设备名称将被合成, 父设备将按照当时的实际情况被提列出来。 因为日志项一般并不包含标记实际物理设备的字段, 所以,设备节点一般就是实际物理设备的最佳代表。 但是又因为设备节点与物理设备之间的对应关系在系统重启之后可能会发生变化, 所以,根据设备节点过滤日志仅对本次启动有意义, 除非你能确认对应关系在重启之后保持不变。
可以使用 --boot, --unit= 等选项 进一步附加额外的约束条件(相当于使用"AND"逻辑连接)。
最终的输出结果来自所有可访问的日志文件的综合, 无论这些日志文件是否正在滚动或者正在被写入, 也无论这些日志文件是属于系统日志还是用户日志, 只要有访问权限,就会被包括进来。
用于提取日志的日志文件的集合可以使用 --user, --system, --directory, --file 选项进行筛选。
每个用户都可以访问其专属的用户日志。 但是默认情况下, 只有root用户以及 "systemd-journal", "adm", "wheel" 组中的用户才可以访问全部的日志(系统与其他用户)。 注意,一般发行版还会给 "adm" 与 "wheel" 组一些其他额外的特权。 例如 "wheel" 组的用户一般都可以执行一些系统管理任务。
默认情况下,结果会通过 less 工具进行分页输出, 并且超长行会在屏幕边缘被截断。 不过,被截掉的部分可以通过左右箭头按键查看。 如果不想分页输出,那么可以使用 --no-pager 选项,参见下面的"环境变量"小节。
如果是输出到 tty 的话,行的颜色还会根据日志的级别变化: ERROR 或更高级别为红色,NOTICE 或更高级别为高亮,其他级别则正常显示。
选项¶
能够识别的命令行选项如下:
--no-full, --full, -l
老旧的 -l/--full 选项 仅用于撤销已有的 --no-full 选项,除此之外没有其他用处。
-a, --all
-f, --follow
-e, --pager-end
-n, --lines=
--no-tail
-r, --reverse
-o, --output=
short
short-iso
short-precise
short-monotonic
short-unix
verbose
export
json
json-pretty
json-sse
cat
--utc
--no-hostname
-x, --catalog
注意,如果要将日志输出用于bug报告, 请不要使用此选项。
-q, --quiet
-m, --merge
-b [ID][±offset], --boot=[ID][±offset]
如果参数为空(也就是 ID 与 ±offset 都未指定), 则表示仅显示本次启动的日志。
如果省略了 ID , 那么当 ±offset 是正数的时候, 将从日志头开始正向查找, 否则(也就是为负数或零)将从日志尾开始反响查找。 举例来说, "-b 1"表示按时间顺序排列最早的那次启动, "-b 2"则表示在时间上第二早的那次启动; "-b -0"表示最后一次启动, "-b -1"表示在时间上第二近的那次启动, 以此类推。 如果 ±offset 也省略了, 那么相当于"-b -0", 除非本次启动不是最后一次启动(例如用 --directory 指定了另外一台主机上的日志目录)。
如果指定了32字符的 ID , 那么表示以此 ID 所代表的那次启动为基准 计算偏移量(±offset), 计算方法同上。 换句话说, 省略 ID 表示以本次启动为基准 计算偏移量(±offset)。
--list-boots
-k, --dmesg
-t, --identifier=SYSLOG_IDENTIFIER
可以多次使用该选项以指定多个识别符。
-u, --unit=UNIT|PATTERN
可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
--user-unit=
可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
-p, --priority=
-c, --cursor=
--after-cursor=
--show-cursor
-- cursor: s=0639...
游标的具体格式是私有的(也就是没有公开的规范), 并且会变化。
-S, --since=, -U, --until=
-F, --field=
-N, --fields
--system, --user
-M, --machine=
-D DIR, --directory=DIR
--file=GLOB
--root=ROOT
--new-id128
--header
--disk-usage
--vacuum-size=, --vacuum-time=, --vacuum-files=
--list-catalog [128-bit-ID...]
如果明确指定了分类ID(128-bit-ID), 那么仅显示指定的分类。
--dump-catalog [128-bit-ID...]
如果明确指定了分类ID(128-bit-ID), 那么仅显示指定的分类。
--update-catalog
--setup-keys
--force
--interval=
--verify
--verify-key=
--sync
--flush
--rotate
-h, --help
--version
--no-pager
退出状态¶
返回值为 0 表示成功, 非零返回值表示失败代码。
环境变量¶
$SYSTEMD_PAGER
$SYSTEMD_LESS
例子¶
不带任何选项与参数,表示显示全部日志
journalctl
仅指定一个匹配条件, 显示所有符合该匹配条件的日志
journalctl _SYSTEMD_UNIT=avahi-daemon.service
指定了两个不同字段的匹配条件, 显示同时满足两个匹配条件的日志
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097
指定了同一个字段的两个不同匹配条件, 显示满足其中任意一个条件的日志
journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
使用 "+" 连接两组匹配条件, 相当于逻辑"OR"连接
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service
显示所有 D-Bus 进程产生的日志
journalctl /usr/bin/dbus-daemon
显示上一次启动所产生的所有内核日志
journalctl -k -b -1
持续显示 apache.service 服务不断生成的日志
journalctl -f -u apache
参见¶
systemd(1), systemd-journald.service(8), systemctl(1), coredumpctl(1), systemd.journal-fields(7), journald.conf(5), systemd.time(7)
NOTES¶
- 1.
- syslog
- 2.
- Journal Export Format
- 3.
- Journal JSON Format
- 4.
- Server-Sent Events
- 5.
- Message Catalog Developer Documentation
跋¶
本页面中文版由中文 man 手册页计划提供。
翻译人员:金步国
金步国作品集:http://www.jinbuguo.com
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh
systemd 231 |