Linux 查询systemd的日志 journalctl 

2018-12-25 0 By admin

journalctl [OPTIONS...] [MATCHES...]

描述

journalctl可用于查询systemd日志的内容,由systemd-journald.service模块提供。
如果不带参数调用,它将显示完整的日志内容,从最早收集的条目开始。

如果传递了一个或多个匹配参数,则过滤输出。匹配的格式为“FIELD = VALUE”,例如:“_SYSTEMD_UNIT = httpd.service”

1、查看所有日志

$ journalctl

2、查看内核日志(不显示应用日志)

$ journalctl -k

3、查看系统本次启动的日志

$ journalctl -b
$ journalctl -b -0

4、查看上一次启动的日志(需更改设置)

$ journalctl -b -1

5、查看指定时间的日志

$ journalctl –since=”2012-10-30 18:17:16″
$ journalctl –since “20 min ago”
$ journalctl –since yesterday
$ journalctl –since “2015-01-10” –until “2015-01-11 03:00”
$ journalctl –since 09:00 –until “1 hour ago”

6、显示尾部的最新10行日志

$ journalctl -n

7、显示尾部指定行数的日志

$ journalctl -n 20

8、实时滚动显示最新日志

$ journalctl -f

9、查看指定服务的日志

$ journalctl /usr/lib/systemd/systemd

10、查看指定进程的日志

$ journalctl _PID=1

11、查看某个路径的脚本的日志

$ journalctl /usr/bin/bash

12、查看指定用户的日志

$ journalctl _UID=33 –since today

13、查看某个 Unit 的日志

$ journalctl -u nginx.service
$ journalctl -u nginx.service –since today

14、实时滚动显示某个 Unit 的最新日志

$ journalctl -u nginx.service -f

15、合并显示多个 Unit 的日志

$ journalctl -u nginx.service -u php-fpm.service –since today

16、查看指定优先级(及其以上级别)的日志,共有8级

# 0: emerg
# 1: alert
# 2: crit
# 3: err
# 4: warning
# 5: notice
# 6: info
# 7: debug
$ journalctl -p err -b

17、日志默认分页输出,–no-pager 改为正常的标准输出

$ journalctl –no-pager

18、以 JSON 格式(单行)输出

$ journalctl -b -u nginx.service -o json

19、以 JSON 格式(多行)输出,可读性更好

$ journalctl -b -u nginx.service -o json-pretty

20、显示日志占据的硬盘空间

$ journalctl –disk-usage

21、指定日志文件占据的最大空间

$ journalctl –vacuum-size=1G

22、指定日志文件保存多久

$ journalctl –vacuum-time=1years