🗺️
Systemdのlogを見るのに便利なコマンド(journalctl)
journalctl
一番オーソドックス. Systemdで管理されたアプリのログを見るためのコマンド.
本気で知りたいならman journalctl とか journalctl -hで見てもらえると助かるパスカル(ジョイマン).
よく使うオプション
-r, --reverse
逆順で表示する. つまり, 最新のものが一番上にくる. 最新のログが見たいときは結構便利
# 最新のものから表示
$ journalctl -r
-n, --lines
最後のn行を表示する. tail コマンドに近い.
# 最後の100行を表示する
$ journalctl -n 100
-f, --follow
リアルタイム表示. screen とかでこれを見る専用のターミナルを作ると便利かも
# リアルタイムに表示
$ journalctl -f
-S, --since
時間で指定.
# 今日のログだけ
$ journalctl --since "today"
# 昨日のログだけ
$ journalctl --since "yesterday" --until "today"
# 1時間前から今までのログ
$ journalctl --since "1 hour ago"
# 具体的な日時を指定
$ journalctl --since "2023-10-27 10:00:00"
-U, --until
--sinceと同じ働きなので割愛
-u, --unit
特定のサービスを見る. 複数指定可能
# sshdサービスのログだけを表示
$ journalctl -u sshd.service
# nginxのログをリアルタイムで監視
$ journalctl -f -u nginx
# 複数のサービスのログを同時に見る
$ journalctl -u nginx -u php-fpm
-p, -priority
エラーや警告などのログレベルで絞り込む.RFC5424によると,以下のような数値が決まっている.よく使うのは3(err),4(warn),5(notice),6(info),7(debug)あたりだろう.
| 数値 | 内容 |
|---|---|
| 0 | Emergency: system is unusable |
| 1 | Alert: action must be taken immediately |
| 2 | Critical: critical conditions |
| 3 | Error: error conditions |
| 4 | Warning: warning conditions |
| 5 | Notice: normal but significant condition |
| 6 | Informational: informational messages |
| 7 | Debug: debug-level messages |
参照: https://datatracker.ietf.org/doc/html/rfc5424#section-6.2.1
# 値で指定(err)
$ journalctl -p 3
# 略称で指定
$ journalctl -p crit
# 範囲指定
$ journalctl -p 0..2
-b, -boot
起動してからのログを表示できる. 過去の起動セッションを表示することも可能
# 起動してからのログ
$ journalctl -b
# 2つ前の起動セッションのログ
$ journalctl -b -2
# 起動セッションの一覧を表示
$ journalctl --list-boots
-g, --grep
正規表現でgrepできる.
$ journalctl -g POST
$ journalctl --grep=POST
参考
man journalctl
journalctl -h
Discussion