Я пытаюсь использовать 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
systemd
arch-linux
journald
Марк Граймс
источник
источник
Ответы:
Это была ошибка с документом, которая была закрыта при
man
обновлении опечатки на странице.Сообщение об ошибке привело к следующим комментариям в коде :
В качестве обходного пути вы можете использовать,
grep
как это предлагается в комментариях к вашему вопросу. Что-то вроде этого:источник
Оригинальный вопрос озаглавлен «Как вы используете шаблоны systemd's journalctl ». Это указывает на очень специфическую особенность journalctl, называемую «MATCHES», а не на общую фильтрацию регулярных выражений.
Функция «МАТЧИ» подробно описана вместе со всеми остальными функциями на его дружественной справочной странице, которая в самом начале гласит:
Функция «совпадения» предназначена для фильтрации записей журнала на основе ряда возможных фильтров.
Для случаев, подобных описанному в оригинальном вопросе, я так и делаю (я тоже запускаю ArchLinux).
Во-первых, вам нужно знать название интересующей вас услуги. Обычно я делаю это:
Я получаю это:
Затем вы можете попросить
journalctl
выполнить фильтрацию по «имени модуля systemd» следующим образом:Это называется «фильтрация матчей». Это было бы это.
Если исходный вопрос был написан вместо того, чтобы означать « как применить
grep
к выходу journalctl », то вы можете применитьgrep
к журналам, сохраненным «до сих пор», с помощьюили посмотрите на текущие входящие записи журнала с
и нажмите CTRL-C, чтобы остановить поток. Конечно, вы можете использовать более сложные каналы с более мелкими регулярными шаблонами или несколькими
grep
командами.источник
ssh*
. В журнале docs говорилось, что это было возможно в одно время. Документы были неверны и были обновлены.Вы можете определить файл модуля при запуске
journalctl
.Я покажу только журнал
sshd
источник