Systemd journal log 활용
저널 보기
기본 보기
옵션없이 journalctl
을 실행하면 systemd
의 로그를 볼 수 있습니다.
$ journalctl
notice 나 warning 인 로그는 굵은 색으로 표시되며 error 는 빨간 색으로 표시되므로 로그의 중요도를 쉽게 파악할 수 있습니다.
최근 메시지만 보기
-n
옵션을 사용하면 최근 10 개 메시지만 표시할 수 있습니다.
$ journalctl -n
만약 -n
뒤에 숫자를 명시하면 해당 숫자만큼 최근 로그 메시지를 표시하며 아래 예제는 7개의 최근 로그 메시지를 보여줍니다.
$ journalctl -n 7
message catalog 사용
-x
옵션을 추가하면 message catalog
에서 해당 저널에 대한 상세 설명을 추가해서 보여 줍니다.
$ journalctl -xn
마지막 라인 표시
-n
옵션을 사용하지 않을 경우 처음 저널부터 표시합니다. -e
(pager end) 옵션을 주면 pager 를 사용해서 마지막 에러 메시지 라인부터 볼 수 있습니다.
$ journalctl -x -e
짤리는 페이지 개행하기
가끔 터미널의 컬럼 길이가 작을 경우 pager 가 개행을 하지 않아서 메시지가 잘려서 표시될 수 있습니다. 이런 경우 --no-pager
옵션을 사용하면 pager 를 사용하지 않으므로 짤리는 페이지 없이 저널을 볼 수 있습니다.
$ journalctl -xn --no-pager | less
변경 사항 계속 보기
tail -f
옵션처럼 -f
를 사용하면 마지막 로그 내용을 보여준 후에 이후에 변경되는 로그 파일의 내용을 계속 출력해 줍니다.
$ journalctl -f
필터링
특정 PID 저널만 보기
_PID={PID}
옵션을 사용하면 특정 PID 관련한 저널만 볼 수 있습니다. 아래는 pid 가 872 인 프로세스가 생성한 최근 10개의 저널을 보여 줍니다.
$ journalctl -n _PID=872
우선 순위로 필터링하기
-p
옵션을 사용하면 저널의 우선 순위(emerg
, alert
, crit
, err
, warning
, notice
, info
, debug
) 에 따라 저널을 필터링해서 볼 수 있습니다.
우선 순위가 높을수록 숫자가 낮으므로(emerg = 0, debug = 7) 지정한 레벨 이상의 로그만 출력하며 다음 예제는 crit
이상인 레벨을 표시하므로 emerg
, alert
저널도 같이 표시 됩니다.
$ journalctl -p critical
날자/시간으로 필터링
--since
와 --until
옵션을 사용하면 특정 기간내의 저널만 뽑아서 볼 수 있습니다.
다음은 20년 1월 9일 이후에 생성된 저널만 표시합니다.
$ journalctl --since 2020-01-09
1월9일, 10일에 생성된 저널만 보고 싶을 경우 --until
옵션을 추가하면 되며 주의할 점은 util 은 ~ 전까지이므로 01-11로 지정해야 10일까지 저널이 표시됩니다.
$ journalctl --since 2020-01-09 --until 2020-01-11
날짜는 yesterday
, today
, tomorrow
같은 단어를 주어도 되며 아래 예제는 어제와 오늘 생성된 저널을 표시합니다.
$ journalctl --since yesterday --until tomorrow
저널이 많을 경우 시간이나 분으로 필터링할 수도 있습니다. 예로 아래는 최근 2시간전에 생성된 저널중 10분이전까지 저널만 표시합니다.
$ journalctl --since "-2hour" --until "10min"