systemd의 journalctl 패턴을 어떻게 사용합니까


21

journalctl의 패턴 일치 를 사용하려고합니다 SYSLOG_IDENTIFIERS. 예를 들어, 수많은 메시지가 태그되어 있습니다 sshd.

$ journalctl -t sshd | wc -l
987

그러나 패턴 일치를 사용하여 패턴을 찾으려면 :

$ journalctl -t 'ssh*'
-- No Entries --
$ journalctl -t 'ssh.*'
-- No Entries --

journalctl 매뉴얼 페이지에 패턴이 작동해야하지만 시스템에서 패턴이 사용 / 정의되는 방법에 대한 다른 내용은 찾을 수 없습니다.

$ 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

5
IRC에 대한 토론을 바탕으로 이것은 버그 (또는 문서 관련 문제) 인 것 같습니다. 버그가 접수 되었습니다 .
Mark Grimes

1
실시간으로 시도하십시오 : journalctl -f | grep sshd
nexoma

실제로 적합한 경우 -t <identifier>를 여러 개 추가 할 수 있습니다.
시반

답변:


15

이것은 페이지 의 오타 가 업데이트 되었을 때 닫히는 문서 버그man 였습니다.

버그 보고서 는 코드에서 다음과 같은 주석으로 이어졌습니다 .

우리는 실제로 패턴을 받아들이지 않으므로 주장하지 않습니다.

이 문제를 해결하려면 grep질문에 대한 의견에서 제안한대로 사용할 수 있습니다 . 이 같은:

journalctl | grep sshd

0

원래 질문 제목은 "systemd의 journalctl 패턴을 어떻게 사용합니까? "입니다. 이는 일반적인 정규 표현식 필터링이 아니라 "MATCHES"라는 저널 릭의 매우 특정한 기능을 나타냅니다.

"매치"기능은 맨 처음에 표시 되는 친숙한 매뉴얼 페이지에 다른 모든 기능과 함께 자세히 설명되어 있습니다 .

하나 이상의 일치 인수가 전달되면 그에 따라 출력이 필터링됩니다.

"일치"기능은 여러 가능한 필터를 기반으로 로그 항목을 필터링하기위한 것입니다.

원래 질문에있는 것과 같은 경우에는 이것이 내가하는 방법입니다 (ArchLinux도 실행합니다).

먼저 관심있는 서비스 이름을 알아야합니다. 일반적으로 다음과 같이합니다.

systemctl | grep sshd

나는 이것을 얻는다 :

sshd.service       loaded active running   OpenSSH Daemon

그런 다음 journalctl"systemd unit name"으로 다음과 같이 필터링 하도록 요청할 수 있습니다 .

journalctl _SYSTEMD_UNIT=sshd.service

"일치 필터링"이라고합니다. 그게 다야.

경우 원래의 질문은 "의미 대신에 기록 된 방법을 적용 할 grepjournalctl에 다음 중 하나를 적용 할 수 있습니다, 출력" grep"지금까지"저장된 로그를에

journalctl | grep ssh

또는 현재 들어오는 로그 항목을보고

journalctl -f | grep ssh

CTRL-C를 눌러 흐름을 중지하십시오. 물론보다 세밀한 규칙적인 패턴이나 여러 grep명령으로 더 복잡한 파이프를 사용할 수 있습니다 .


응답에 감사하지만 _SYTEMD_UNIT는 패턴을 허용하지 않습니다. 내 의견과 @ Tim의 답변에서 언급했듯이 이것은 문서의 버그였습니다.
Mark Grimes

@MarkGrimes, 적어도 나를 위해 (시스템 239) 작동합니다. 나는 내가 적어 놓기 전에 항상 내가하는 말을 테스트합니다. 문서화 된대로 작동합니다.
EnzoR

예를 들어 패턴 사용에 관한 질문입니다 ssh*. journalctl 문서는 이것이 한 번에 가능하다고 말했습니다. 문서가 잘못되어 업데이트되었습니다.
Mark Grimes

@MarkGrimes 문제는 문자 패턴이 아닌 systemd의 저널 패턴 에 관한 것 입니다 . 업데이트 된 답변을 참조하십시오. 그리고 그것은 문서화 된 그대로 ArchLinux에서 작동합니다.
EnzoR

-2

실행할 때 단위 파일을 정의 할 수 있습니다 journalctl.

journalctl -f -u sshd.service

나는 ~의 일기 만 보여줄 것이다 sshd


이 답변은 질문을 다루지 않습니다. 사용자는 필터에서 패턴 사용을 요구하고 있습니다.
Merlijn Sebrechts
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.