Linux下journalctl命令怎么使用
本篇内容主要讲解“Linux下journalctl命令怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下journalctl命令怎么使用”吧!
在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志。
默认情况下,journal
日志在大多数 Linux 发行版中是启用的,但它将日志数据存储在/run/log/journal/
中,重启时会被删除。如果要使日志永久保存,请执行以下步骤,这些步骤将自动创建/var/log/journal/
目录。
以 root 用户身份打开/etc/systemd/journald.conf
文件并取消注释“Storage=auto”的行并将其更改为“Storage=persistent”。或者,您可以使用 sed 命令替换文件中的匹配字符串。
[root@server1~]#sed-i'/Storage/c\Storage=persistent'/etc/systemd/journald.conf
重启 systemd-journald 服务:
[root@server1~]#systemctlrestartsystemd-journald
修改/var/log/journal
权限:
[root@server1~]#chown-Rroot:systemd-journal/var/log/journal
下面可以从目录中看到日志了。
2) journalctl 常用的选项
在使用 Journalctl 工具之前,可以了解一些常用的选项:
3.a) 使用 journalctl 命令查看基本日志
当journalctl不带选项是,它会显示日志的完整内容,首先列出最旧的记录。
它在后端使用less
命令来显示日志。
[root@server1~]#journalctl
3.b) 以相反的顺序显示日志
上面的输出按时间顺序显示日志。如果想要将最新的日志放在最前面,需要添加-r
选项。
[root@server1~]#journalctl-r
3.c) 显示指定行数的日志
可以使用-n
选项仅显示日志中指定行数的日志,如下所示:
[root@server1~]#journalctl-n20
3.d) 实时查看日志
可以使用-f
选项查看实时日志,如下所示。这在对某些问题进行故障排除时很有用。
[root@server1~]#journalctl-f
3.e) 只显示内核日志
过滤器可以根据你的需要使用。要仅显示内核日志,可以使用-k
选项。这相当于字段匹配_TRANSPORT=kernel
。
[root@server1~]#journalctl-k或者[root@server1~]#journalctl_TRANSPORT=kernel
3.f) 过滤出系统引导日志
每次引导系统时,都会在日志中创建一个新的引导条目。要列出所有可用的引导,运行以下命令:
[root@server1~]#journalctl--list-boots-15d845cc6c67746bdabd9b9a91c0d86eeTue2021-06-0814:58:47CST—Fri2021-06-1108:32:36CST05690a1c73db146bb8ceeaf3c8b1086f5Wed2021-06-1615:40:42CST—Wed2021-06-1615:41:20CST
系统引导日志以一个数字作为前缀,该数字从0开始。’0′ 指的是当前启动。引导会话“-1”是上次引导的会话,依此类推。使用下面命令显示本次系统引导的日志记录:
[root@server1~]#journalctl-b0
查看上一次系统引导的记录,如下操作:
[root@server1~]#journalctl-b-1
3.g) 基于时间间隔的过滤
可以根据时间间隔过滤日志。多个参数可以与时间过滤器一起使用,如下所示。要使用时间过滤器,请使用“-S 或 –since”和“-U 或 –until”命令行开关。
要过滤从昨天到目前的日志,请运行以下命令:
[root@server1~]#journalctl-Syesterday
仅过滤今天的日志,请运行以下命令:
[root@server1~]#journalctl-Stoday或者[root@server1~]#journalctl-S00:00
如果仅过滤昨天的日志,不包括今天的,请运行以下命令:
[root@server1~]#journalctl-Syesterday--until00:00
要过滤自 3 月 12 日以来的日志,请运行以下命令:
[root@server1~]#journalctl-S2021-03-12
如要使用日期和时间过滤日志,请运行以下命令。
注意:日期和时间的使用格式:year-month-day
hour:minute:second
[root@server1~]#journalctl-S"2021-06-0120:00:00"-U"2021-06-16"
要过滤过去一小时的消息,请使用以下命令:
[root@server1~]#journalctl-S-1h
3.h) 按优先级过滤
过滤可以应用于消息优先级,这在你想要过滤特定消息(如“Warn”或“Error”等)时非常有用。
下面列出了所有优先级:
[root@server1~]#journalctl-p3-b或者[root@server1~]#journalctl-perr-b
journal日志可以按特定字段过滤。要匹配的字段的语法是FIELD_NAME=MATCHED_VALUE
,例如SYSTEMD_UNIT=httpd.service'
。此外,可以在单个查询中指定多个匹配项,以更方便的方式过滤输出消息。
4.a) 按Unit过滤
要显示由指定服务生成的消息,请使用下面给出的命令。同样可以过滤任何服务消息。
[root@server1~]#journalctl-usshd.service或者[root@server1~]#journalctl_SYSTEMD_UNIT=sshd.service
4.b) 按设备路径过滤
要过滤与特定设备相关的消息,请运行以下命令:
[root@server1~]#journalctl/dev/sda
当你为journal日志启用持久存储时,它最多使用/var/log/journal
所在文件系统容量的“10%”。
当您为日志日志启用持久存储时,它最多使用“/var/log/journal”所在文件系统的“10%”。
[root@server1~]#journalctl--disk-usageArchivedandactivejournalstakeup16.0Minthefilesystem.
到此,相信大家对“Linux下journalctl命令怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。