このガイドでは、さまざまなコマンド ライン ユーティリティを使用して Linux で systemd ログを表示する方法について説明します。
注記: このガイドで説明されているコマンドは Ubuntu 上で実行されます。これらは、systemd init システムが付属するすべての Linux ディストリビューションでエラーなしで動作します。
systemctl ログを表示する方法
Linux で systemd ログを表示するには、2 つの方法があります。
systemctl は最新のサービス固有のログを提供し、journalctl はすべてのサービスと特定のサービスの詳細なシステム全体のログを提供します。
systemd ログを表示するには、両方のユーティリティを調べます。ただし、その前に、systemctl コマンドとjournalctl コマンドの主な違いを理解しましょう。
systemctlとは何ですか
Systemctl は、サービスの有効化または無効化やステータスの表示など、systemd サービスを管理するコマンド ライン ユーティリティです。の システム制御ステータス このコマンドは、出力の下部にサービスのログ行を数行出力します。このログは最近の起動後のものです。ただし、サービスのこれらのログ行は、現在のブート後のみのものです。
ジャーナルctlとは何ですか
journalctl は、systemd によって収集されたログを出力するために使用されるコマンド ライン ユーティリティです。 systemctl と比較すると、フィルタリング オプションを備えた詳細な出力が提供されます。このユーティリティは次の目的で設計されています。
- ログの読み取り (最も古いログが最初に表示されます)
- 監視ログ
- 時間、サービス、またはユーザーに基づいてログをフィルタリングする
systemd は、カーネル、サービス、デーモンからログを収集し、一元的な場所に保存します。
systemctl を使用してサービスのログを表示する方法
を使用してサービスのログを検索するための一般的な構文 システム制御 ユーティリティについては後述します。
システム制御ステータス [ サービス名 】たとえば、ログ情報を表示するには、 smbd.サービス 以下のコマンドを使用します。
systemctl ステータス smbd.service
ページネーションなしで出力を取得するには、 –ポケットベルなし コマンドのオプション。
systemctl ステータス smbd.service --ポケベルなし
Journalctl を使用してサービスのログを表示する方法
systemd の特定のサービスのログを表示するには、次を使用します。 ジャーナルctl とともに -で コマンドとサービスまたはユニット名。
ジャーナルctl -で [ サービス名 】上記のコマンドでは、 -で フラグ、略称 -ユニット をフィルタリングするために使用されます ジャーナルctl ユニット名で出力します。
たとえば、ログを印刷するには、 smbd デーモン、私が置き換えます [ユニット名] と smbd.サービス 。
ジャーナルctl -で smbd.サービス
出力では、最も古いエントリが最初に表示され、次に各ブート後にログがリストされることがわかります。
最新のエントリを取得するには、最初に使用します -それは の略 –ポケベル終了。
ジャーナルctl -で smbd.サービス -それは
出力からページネーションを省略したい場合は、単純に –ポケットベルなし 上記のコマンドで。
リアルタイム使用でログエントリを継続的に印刷するには -f の略 -フォローする 。
ジャーナルctl -で smbd.サービス -fフィルタリングは、-b フラグを使用してさらに拡張できます。 -ブート 、現在のブートに基づいてログを出力します。
ジャーナルctl -で [ ユニット名 】 -bのログを印刷しましょう smbd.サービス 最近のブートから。
ジャーナルctl -で smbd.サービス -b
上記の出力は、 システム制御ステータス 指示。
詳細なログの概要を取得するには、 -バツ の略 -カタログ オプション。
ジャーナルctl -で smbd.サービス -バツこれにより、ログの簡単な説明が追加されます。
ここで、journalctl を使用して時間に基づいてログを出力するには、2 つのオプションがあります。 -S の略 -以来 そして -で の略 -それまで 。
ジャーナルctl -で [ ユニット名 】 -S 「[年-月-日] [時:分:秒]」たとえば、ユニットのログを表示するには smbd から 2024:01:30 12:05:00 。
ジャーナルctl -で smbd.サービス -S 「2024:01:30 12:05:00」
結論
サービスの systemd ログを表示するには、journalctl と systemctl という 2 つの主要なユーティリティがあります。 journalctl は、systemd のログを表示するために特別に設計されています。ただし、systemctl にはサービスのログを出力するオプションもあります。サービス利用のログを印刷するには、 ジャーナルctl -u [ユニット名]と システム制御 [ユニット名]。