このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】システムログに行を追加する:loggerコマンド
loggerコマンドの概要
logger
コマンドは、システムログにメッセージを追加するためのツールです。システム管理者が手動でログを記録する場合や、スクリプトから自動的にログを送信する場合に使用されます。
【構文】logger [オプション] メッセージ
主なオプションと説明
オプション | 説明 | 例 |
---|---|---|
-p ファシリティ.プライオリティ | ログのファシリティとプライオリティを指定します。 | -p local0.info |
-t タグ | ログエントリにタグを追加します。 | -t myscript |
-i | プロセスIDをログメッセージに追加します。 | -i |
-f ファイル | ファイルの内容をログに追加します。 | -f /path/to/file |
システムログが格納されるファイル
ディストリビューション | ログファイル |
---|---|
Ubuntu | /var/log/syslog |
CentOS | /var/log/messages |
loggerコマンドの注意事項
logger
コマンドのオプションには、ファシリティやプライオリティの指定が含まれますが、rsyslog
の設定で使用できる特殊な値(例: *
や none
)は使用できません。
*
:全てのファシリティやプライオリティを意味する。none
:該当するログメッセージを無視する。
コマンドの使用例と解説
1.シンプルなメッセージを追加する。
・「logger "This is a test log message."
」コマンドを実行します。
デフォルトのファシリティとプライオリティで「This is a test log message.」というメッセージをシステムログに追加します。
user01@ubuntu-vm:~$ logger "This is a test log message."
確認方法
・「tail -n 10 /var/log/syslog
」コマンドを実行します。(Ubuntuの場合)
※CentOSの場合は「tail -n 10 /var/log/messages
」コマンドを実行します。
user01@ubuntu-vm:~$ tail -n 10 /var/log/syslog
Jul 21 11:41:54 ubuntu-vm user01: This is a test log message.
Jul 21 11:42:09 ubuntu-vm anacron[675]: Job `cron.daily' started
Jul 21 11:42:09 ubuntu-vm anacron[3352]: Updated timestamp for job `cron.daily' to 2024-07-21
Jul 21 11:42:09 ubuntu-vm systemd[1]: Starting Download data for packages that failed at package install time...
Jul 21 11:42:09 ubuntu-vm systemd[1]: update-notifier-download.service: Deactivated successfully.
Jul 21 11:42:09 ubuntu-vm systemd[1]: Finished Download data for packages that failed at package install time.
Jul 21 11:42:09 ubuntu-vm cracklib: no dictionary update necessary.
Jul 21 11:42:09 ubuntu-vm anacron[675]: Job `cron.daily' terminated
Jul 21 11:42:09 ubuntu-vm anacron[675]: Normal exit (1 job run)
Jul 21 11:42:09 ubuntu-vm systemd[1]: anacron.service: Deactivated successfully.
2.特定のファシリティとプライオリティを指定する。
・「logger -p local0.info "Informational message from local0."
」コマンドを実行します。
local0
ファシリティとinfo
プライオリティでメッセージをログに追加します。local0
はローカルユーザー定義のメッセージです。
user01@ubuntu-vm:~$ logger -p local0.info "Informational message from local0."
確認方法
・「tail -n 10 /var/log/syslog
」コマンドを実行します。(Ubuntuの場合)
※CentOSの場合は「tail -n 10 /var/log/messages
」コマンドを実行します。
user01@ubuntu-vm:~$ tail -n 10 /var/log/syslog
Jul 21 11:42:09 ubuntu-vm anacron[3352]: Updated timestamp for job `cron.daily' to 2024-07-21
Jul 21 11:42:09 ubuntu-vm systemd[1]: Starting Download data for packages that failed at package install time...
Jul 21 11:42:09 ubuntu-vm systemd[1]: update-notifier-download.service: Deactivated successfully.
Jul 21 11:42:09 ubuntu-vm systemd[1]: Finished Download data for packages that failed at package install time.
Jul 21 11:42:09 ubuntu-vm cracklib: no dictionary update necessary.
Jul 21 11:42:09 ubuntu-vm anacron[675]: Job `cron.daily' terminated
Jul 21 11:42:09 ubuntu-vm anacron[675]: Normal exit (1 job run)
Jul 21 11:42:09 ubuntu-vm systemd[1]: anacron.service: Deactivated successfully.
Jul 21 11:42:21 ubuntu-vm systemd[2406]: Started Application launched by gnome-session-binary.
Jul 21 11:45:01 ubuntu-vm user01: Informational message from local0.
3.タグを付けてログを追加する。
・「logger -t myscript "This is a log message from my script."
」コマンドを実行します。
myscript
というタグを付けてメッセージをログに追加します。
user01@ubuntu-vm:~$ logger -t myscript "This is a log message from my script."
確認方法
・「tail -n 10 /var/log/syslog
」コマンドを実行します。(Ubuntuの場合)
※CentOSの場合は「tail -n 10 /var/log/messages
」コマンドを実行します。
user01@ubuntu-vm:~$ tail -n 10 /var/log/syslog
Jul 21 11:42:09 ubuntu-vm systemd[1]: update-notifier-download.service: Deactivated successfully.
Jul 21 11:42:09 ubuntu-vm systemd[1]: Finished Download data for packages that failed at package install time.
Jul 21 11:42:09 ubuntu-vm cracklib: no dictionary update necessary.
Jul 21 11:42:09 ubuntu-vm anacron[675]: Job `cron.daily' terminated
Jul 21 11:42:09 ubuntu-vm anacron[675]: Normal exit (1 job run)
Jul 21 11:42:09 ubuntu-vm systemd[1]: anacron.service: Deactivated successfully.
Jul 21 11:42:21 ubuntu-vm systemd[2406]: Started Application launched by gnome-session-binary.
Jul 21 11:45:01 ubuntu-vm user01: Informational message from local0.
Jul 21 11:47:10 ubuntu-vm rsyslogd: [origin software="rsyslogd" swVersion="8.2112.0" x-pid="555" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Jul 21 11:48:25 ubuntu-vm myscript: This is a log message from my script.
4.ファイルの内容をログに追加する。
ホームディレクトリにログに追加するファイルを作成します。
・「echo "This is test log." > file.log
」コマンドを実行します。
user01@ubuntu-vm:~$ echo "This is test log." > file.log
・「logger -f /home/user01/file.log
」コマンドを実行します。
指定したファイルの内容をログに追加します。※「/home/user01
」の部分はログインしているユーザーのホームディレクトリに置き換えてください。
user01@ubuntu-vm:~$ logger -f /home/user01/file.log
確認方法
・「tail -n 10 /var/log/syslog
」コマンドを実行します。(Ubuntuの場合)
※CentOSの場合は「tail -n 10 /var/log/messages
」コマンドを実行します。
user01@ubuntu-vm:~$ tail -n 10 /var/log/syslog
Jul 21 11:51:45 ubuntu-vm dbus-daemon[2429]: [session uid=1000 pid=2429] Successfully activated service 'org.freedesktop.Tracker3.Miner.Extract'
Jul 21 11:51:45 ubuntu-vm systemd[2406]: Started Tracker metadata extractor.
Jul 21 11:52:09 ubuntu-vm systemd[1]: Starting Cleanup of Temporary Directories...
Jul 21 11:52:09 ubuntu-vm systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
Jul 21 11:52:09 ubuntu-vm systemd[1]: Finished Cleanup of Temporary Directories.
Jul 21 11:56:34 ubuntu-vm dbus-daemon[2429]: [session uid=1000 pid=2429] Activating via systemd: service name='org.freedesktop.Tracker3.Miner.Extract' unit='tracker-extract-3.service' requested by ':1.9' (uid=1000 pid=2456 comm="/usr/libexec/tracker-miner-fs-3 " label="unconfined")
Jul 21 11:56:34 ubuntu-vm systemd[2406]: Starting Tracker metadata extractor...
Jul 21 11:56:34 ubuntu-vm dbus-daemon[2429]: [session uid=1000 pid=2429] Successfully activated service 'org.freedesktop.Tracker3.Miner.Extract'
Jul 21 11:56:34 ubuntu-vm systemd[2406]: Started Tracker metadata extractor.
Jul 21 11:56:42 ubuntu-vm user01: This is test log.
5.不要なファイルを削除します。
この演習で作成した不要なファイルを削除します。
・「rm file.log
」コマンドを実行し、「ls
」コマンドで削除されたかを確認します。
user01@ubuntu-vm:~$ rm file.log
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
logger
コマンドは、システム管理者やスクリプトからシステムログにメッセージを追加するための強力なツールです。オプションを活用することで、ファシリティやプライオリティ、タグを設定し、ログの整理やフィルタリングを容易にします。UbuntuやCentOSなど、異なるLinuxディストリビューションでも使い方は共通しているため、幅広く利用されています。ただし、rsyslog
の設定と異なる点に注意して使用することが重要です。