Estou tentando usar journalctl
a correspondência de padrões em SYSLOG_IDENTIFIERS
. Como exemplo, tenho uma tonelada de mensagens marcadas sshd
:
$ journalctl -t sshd | wc -l
987
mas se eu tentar usar a correspondência de padrões para encontrá-los:
$ journalctl -t 'ssh*'
-- No Entries --
$ journalctl -t 'ssh.*'
-- No Entries --
A página de manual do journalctl diz que os padrões devem funcionar, mas não consigo encontrar mais nada sobre como os padrões são usados/definidos no 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.
Estou executando o ArchLinux:
$ journalctl --version
systemd 225
+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP
+GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN
Este foi um bug do documento que foi fechado quando o erro de digitação na
man
página foi atualizado.O relatório do bug levou aos seguintes comentários no código :
Como solução alternativa, você pode usar
grep
conforme sugerido nos comentários da sua pergunta. Algo assim:journalctl -v 239 suporta filtragem com
-g
Da página man do journactl
A pergunta original intitula "Como você usa os padrões journalctl do systemd ". Isso aponta para um recurso muito específico do journalctl chamado "MATCHES" em vez de uma filtragem de expressão regular genérica.
O recurso "MATCHES" é totalmente detalhado junto com todos os outros recursos em sua página de manual amigável, que afirma logo no início:
O recurso "correspondências" destina-se a filtrar as entradas de log com base em vários filtros possíveis.
Para casos como o da pergunta original, é assim que eu faço (eu também executo o ArchLinux).
Primeiro, você precisa saber o nome do serviço em que está interessado. Eu costumo fazer isso:
Eu entendi isso:
Então você pode pedir
journalctl
para filtrar pelo "nome da unidade systemd" assim:Chama-se "a filtragem de correspondências". Seria isso.
Caso a pergunta original tenha sido escrita para significar " como aplicar
grep
à saída journalctl ", você pode aplicargrep
aos logs armazenados "até agora" comou veja as entradas de log atualmente recebidas com
e pressione CTRL-C para interromper o fluxo. Claro, você pode usar pipes mais complexos com padrões regulares de granulação mais fina ou vários
grep
comandos.Você pode definir o arquivo de unidade ao executar
journalctl
.Vou mostrar apenas o diário de
sshd