Systemd
你如何使用 systemd 的 journalctl 模式
我正在嘗試
journalctl
在SYSLOG_IDENTIFIERS
. 例如,我有大量標記的消息sshd
:$ journalctl -t sshd | wc -l 987
但是如果我嘗試使用模式匹配來找到它們:
$ journalctl -t 'ssh*' -- No Entries -- $ journalctl -t 'ssh.*' -- No Entries --
journalctl 手冊頁說模式應該可以工作,但我找不到其他關於如何在 systemd 中使用/定義模式的資訊。
$ man journalctl .... -t, --identifier=SYSLOG_IDENTIFIER|PATTERN Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.
我正在執行 ArchLinux:
$ journalctl --version systemd 225 +PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN
這是一個文件錯誤
man
,在更新頁面中的錯字時已關閉。錯誤報告導致程式碼中出現以下註釋:
我們實際上並不接受模式,因此不要這麼說。
作為一種解決方法,您可以按照
grep
問題評論中的建議使用。像這樣的東西:journalctl | grep sshd
journalctl -v 239 支持過濾
-g
-g, --grep= Filter output to entries where the MESSAGE= field matches the specified regular expression. PERL-compatible regular expressions are used, see pcre2pattern(3) for a detailed description of the syntax. If the pattern is all lowercase, matching is case insensitive. Otherwise, matching is case sensitive. This can be overridden with the --case-sensitive option, see below.