云服务器免费试用

Linux下journalctl命令使用实例

服务器知识 0 1528

在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志,下面为大家详细讲解一下Linux下journalctl命令使用实例。

Linux下journalctl命令使用实例

1) 如何使日志长期保存在系统中?

默认情况下,journal日志在大多数 Linux 发行版中是启用的,但它将日志数据存储在/run/log/journal/中,重启时会被删除。如果要使日志永久保存,请执行以下步骤,这些步骤将自动创建/var/log/journal/目录。

以 root 用户身份打开/etc/systemd/journald.conf文件并取消注释;Storage=auto;的行并将其更改为;Storage=persistent;。或者,您可以使用 sed 命令替换文件中的匹配字符串。

[root@server1~]#sed-i'/Storage/cStorage=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 工具之前,可以了解一些常用的选项:

  • -f : 实时显示最近的10条日志。
  • -e : 跳转到日志末尾以显示最新事件。
  • -r : 按时间倒序打印日志消息
  • -k : 只显示内核日志。
  • -u : 只显示指定systemd Unit的消息。
  • -b : 显示来自特定引导的消息,如果不包括特定引导会话,则显示当前引导消息。
  • ;0;-1;是上次引导的会话,依此类推。使用下面命令显示本次系统引导的日志记录:
    [root@server1~]#journalctl-b0  

    查看上一次系统引导的记录,如下操作:

    [root@server1~]#journalctl-b-1  

    3.g) 基于时间间隔的过滤

    可以根据时间间隔过滤日志。多个参数可以与时间过滤器一起使用,如下所示。要使用时间过滤器,请使用;-S 或 ;和;-U 或 ;命令行开关。

    要过滤从昨天到目前的日志,请运行以下命令:

    [root@server1~]#journalctl-Syesterday  

    仅过滤今天的日志,请运行以下命令:

    [root@server1~]#journalctl-Stoday  或者  [root@server1~]#journalctl-S00:00  

    如果仅过滤昨天的日志,不包括今天的,请运行以下命令:

    [root@server1~]#journalctl-Syesterday--until00:00  

    要过滤自 3 月 12 日以来的日志,请运行以下命令:

    [root@server1~]#journalctl-S2023-03-12  

    如要使用日期和时间过滤日志,请运行以下命令。

    注意:日期和时间的使用格式:year-month-day hour:minute:second

    [root@server1~]#journalctl-S"2023-06-0120:00:00"-U"2023-06-16"  

    要过滤过去一小时的消息,请使用以下命令:

    [root@server1~]#journalctl-S-1h  

    3.h) 按优先级过滤

    过滤可以应用于消息优先级,这在你想要过滤特定消息(如;Warn;或;Error;等)时非常有用。

    下面列出了所有优先级:

    PriorityCode
    0emerg
    1alert
    2crit
    3err
    4warning
    5notice
    6info
    7debug
    [root@server1~]#journalctl-p3-b  或者  [root@server1~]#journalctl-perr-b  

    4) 基于字段的过滤

    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  

    5) 检查日志文件的磁盘占用情况

    当你为journal日志启用持久存储时,它最多使用/var/log/journal所在文件系统容量的;10%;。

    当您为日志日志启用持久存储时,它最多使用;/var/log/journal;所在文件系统的;10%;。

    [root@server1~]#journalctl--disk-usage  Archivedandactivejournalstakeup16.0Minthefilesystem.  

    本文来源:www.lxlinux.net/6346.html,若引用不当,请联系修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下journalctl命令使用实例
本文地址: https://solustack.com/53909.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。