概要
この記事では、journalctl
コマンドの使い方について詳しく解説します。
journalctl
は、ログを表示、検索、および解析するための強力なツールであり、システム管理やトラブルシューティングに役立ちます。
journalctl
journalctl
コマンドを使用すると、システム全体のログを簡単に確認できます。以下に基本的なコマンドとその説明を示します。
デフォルトでは、ログの出力はページャに渡され、ページ送りしながら確認できます。
以下に追加オプションを含めたテーブルを示します:
オプション | 説明 |
---|---|
-S --since=DATE |
指定した日時以降のログを表示します。 |
-U --until=DATE |
指定した日時以前のログを表示します。 |
-e --pager-end |
ページャで即座に最後にジャンプします。 |
-b --boot[=ID] |
現在のブートまたは指定したブートのログを表示します。 |
-p --priority=RANGE |
指定した優先度のログを表示します。 |
-k --dmesg |
現在のブートのカーネルメッセージを表示します。 |
-u --unit=UNIT |
指定したユニットのログを表示します。 |
--system |
システムジャーナルを表示します。 |
--user |
現在のユーザーのジャーナルを表示します。 |
-g --grep=PATTERN |
PATTERN に一致する MESSAGE を持つログを表示します。 |
--user-unit=UNIT |
指定したユーザーユニットのログを表示します。 |
--case-sensitive[=BOOL] |
大文字小文字を区別するかどうかを強制します。 |
-a --all |
長いフィールドや印刷不可能なフィールドを含めてすべてのフィールドを表示します。 |
-o --output=STRING |
ジャーナルの出力モードを変更します (例: short, json, cat)。 |
-r --reverse |
最新のログを最初に表示します。 |
-f --follow |
リアルタイムでログを表示します。 |
-n --lines[=INTEGER] |
表示するジャーナルログの数を指定します。 |
-x --catalog |
利用可能な場合にメッセージの説明を追加します。 |
--no-pager |
出力をページャーに渡さない |
--file=PATH |
ジャーナルファイルを表示します。 |
--utc |
時間を協定世界時 (UTC) で表示します。 |
--no-full |
フィールドを省略します。 |
--no-hostname |
ホスト名フィールドの出力を抑制します。 |
基本的な使い方
すべてのログを表示する
journalctl
すべてのログメッセージを表示します。
最新のログを表示する
journalctl -e
最新のログメッセージを表示します。ログの最後にジャンプします。
リアルタイムでログを表示する
journalctl -f
新しいログメッセージがリアルタイムで追加されるのを監視します。
起動時のブートログを表示する
journalctl -b
現在のブートのログメッセージを表示します。前のブートのログを表示するには、
-b -1
のように指定します。カーネルメッセージを表示する
journalctl -k
カーネルメッセージを表示します。
システムジャーナルを表示する
journalctl --system
システムジャーナルを表示します。これは、システム全体のログメッセージを表示するために使用されます。
ユーザージャーナルを表示する
journalctl --user
現在のユーザーのジャーナルを表示します。
フィルタリング
特定の時間範囲のログを表示する
journalctl -S "2025-01-29 18:00:00" -U "2025-01-29 19:00:00"
特定の時間範囲内のログメッセージを表示します。
特定のユニットのログを表示する
journalctl -u ssh.service
特定のサービス (ユニット) のログメッセージを表示します。この例では、
ssh
サービスのログを表示します。 ワイルドカードが使用できるので、ssh*
と指定することも可能です。特定のログレベルのログを表示する
journalctl -p err
特定のログレベルのログメッセージを表示します。この例では、ログレベルが
err
のログを表示します。 ログレベルにはemerg
,alert
,crit
,err
,warning
,notice
,info
,debug
があります。特定のパターンにマッチするログを表示する
journalctl -g "Network Manager"
特定のパターンに一致するメッセージを表示します。正規表現を利用可能です。
--case-sensitive
をつけると、大文字と小文字を区別しません。
出力形式を指定する
-o
オプションで出力形式を指定できます。
これらの出力形式を使用することで、journalctl
のログ表示を用途に合わせてカスタマイズできます。
journalctl -o json
以下に journalctl
コマンドの -o
オプションで使用できる出力形式をテーブル形式で整理しました:
タイムスタンプの表示形式
出力形式 | 説明 | 例 |
---|---|---|
short |
デフォルトの形式で、タイムスタンプとメッセージを表示します | 4 月 17 21:01:33 |
short-precise |
ミリ秒精度のタイムスタンプを含む短い形式 | 2022-04-17T21:01:33.071527+0900 |
short-iso |
ISO 8601 形式のタイムスタンプを含む短い形式 | 2022-04-17T21:01:33+0900 |
short-iso-precise |
ミリ秒精度の ISO 8601 形式のタイムスタンプを含む短い形式 | 2022-04-17T21:01:33.071533+0900 |
short-full |
フルタイムスタンプとホスト名を含む短い形式 | Sun 2022-04-17 21:01:33 JST |
short-monotonic |
モノトニックタイムスタンプを含む短い形式 | [ 0.000000] |
short-unix |
UNIX タイムスタンプを含む短い形式 | 1650196893.071581 |
コンテンツの表示形式
出力形式 | 説明 |
---|---|
verbose |
すべてのフィールドを表示する詳細な形式 |
export |
インポート可能なバイナリ形式 |
json |
JSON 形式 |
json-pretty |
整形された JSON 形式 |
json-sse |
サーバー送信イベント形式の JSON |
json-seq |
JSON テキストシーケンス |
cat |
メッセージのみを表示する形式 |
with-unit |
ユニット名を含む形式 |
表示に関係するオプション
オプション | 説明 |
---|---|
-r --reverse |
最新のログを最初に表示します。 |
-n --lines[=INTEGER] |
表示するジャーナルログの数を指定します。 |
-x --catalog |
利用可能な場合にメッセージの説明を追加します。 |
--no-pager |
出力をページャーに渡さない |
--utc |
時間を協定世界時 (UTC) で表示します。 |
--no-full |
フィールドを省略します。 |
--no-hostname |
ホスト名フィールドの出力を抑制します。 |
ログをバイナリ形式で出力する
このコマンドは、すべてのログをバイナリ形式で出力し、logs.bin
というファイルに保存します。
journalctl -o export > logs.bin
バイナリ形式のログファイルを再度確認したい場合は、以下のコマンドを使用してインポートすることができます。
journalctl --file=logs.bin
コメント