使用journalctl显示系统日志文件

时间:2019-04-29 03:17:36  来源:igfitidea点击:

什么是journalctl?

从2012年开始,许多Linux发行版都从传统的System V初始化系统转移到了一个名为systemd的新系统。Systemd用于引导系统和管理进程。systemd中包含一个名为journalctl的辅助组件,其主要目的是管理系统的事件记录。journalctl是一个系统实用程序,使您能够查询系统日志的内容。journalctl用于查看系统日志文件。默认情况下,该命令在不使用其他任何参数的情况下,将从收集的最早条目开始显示日记的全部内容。

当执行并执行journalctl命令而不附加任何参数时,将显示完整的日志。默认情况下,最老的条目首先显示。输出一次显示一个屏幕,但是,您可以使用光标键(箭头键)或通过按空格键一次滚动整个页面来滚动输出。默认情况下,行被截断,但是,您可以使用箭头键来滚动

journalctl

如果不带其他参数,则所有输出都将首先显示最早的条目。

执行的命令:journalctl

-- Logs begin at Thu 2016-08-04 19:04:49 BST, end at Thu 2016-08-04 19:19:52 BST
Aug 04 19:04:49 centos72m systemd-journal[90]: Runtime journal is using 8.0M (ma
Aug 04 19:04:49 centos72m systemd-journal[90]: Runtime journal is using 8.0M (ma
Aug 04 19:04:49 centos72m kernel: Initializing cgroup subsys cpuset

journalctl -r

当通过-r参数传递journalctl命令时。这指示系统以相反的顺序显示输出。

执行的命令:journalctl -r

-- Logs begin at Fri 2016-08-05 09:07:14 BST, end at Fri 2016-08-05 09:22:14 BST
Aug 05 09:22:14 centos72m systemd[1]: Started Cleanup of Temporary Directories.
Aug 05 09:22:14 centos72m systemd[1]: Starting Cleanup of Temporary Directories.

journalctl -f

实时显示日志

[root@centos72m ~]# journalctl -f
-- Logs begin at Thu 2016-08-04 19:04:49 BST. --
Aug 04 20:01:01 centos72m CROND[1539]: (root) CMD (run-parts /etc/cron.hourly)
Aug 04 20:01:01 centos72m run-parts(/etc/cron.hourly)[1542]: starting 0anacron
Aug 04 20:01:02 centos72m anacron[1548]: Anacron started on 2016-08-04
Aug 04 20:01:02 centos72m run-parts(/etc/cron.hourly)[1550]: finished 0anacron

限制输出大小

-n--lines =参数来限制显示的行数。
显示5行 journalctl -n 5

显示特定时间内的日志

使用--since指定时间,格式为:YYYY-MM-DD HH:MM:SS

journalctl --since 1 hour ago显示1小时前的日志

journalctl --since 3 days ago显示3天前的日志

` journalctl --since "2016-08-04 20:00:00" --until "2016-08-04 20:15:00" 显示某个时间范围的日志

显示某个用户的事件日志

先使用id查看 UID 然后通过_UID过滤

$ id john
# journalctl _UID=1000 -n 5

显示某个服务的事件日志

# journalctl -u httpd.service
# journalctl -u httpd.service -u crond.service

显示启动信息

journalctl --list-boots

journalctl -b

显示内核消息

journalctl –k
journalctl –dmesg

启用持久日记

默认情况下,journalctl命令从内存中保存的文件或小型环形缓冲区中检索其信息。要启用持久性,首先您需要创建一个目录,在其中将存储日记帐。

# mkdir -p /var/log/journal

# systemctl restart systemd-journald