tail -fオプションの使い方を解説!Linuxでログをリアルタイム監視する基本
生徒
「Linuxでログファイルの中身をずっと見張るみたいなことってできますか?」
先生
「はい、それにはtailコマンドの-fオプションを使います。ファイルの末尾をリアルタイムで表示し続けてくれるんですよ。」
生徒
「リアルタイムって、誰かがファイルに書き込んだらすぐ画面に出るんですか?」
先生
「その通りです。ログ監視などでよく使われている便利なLinuxコマンドです。詳しく見ていきましょう。」
1. tail -fオプションとは?
tail -fは、Linuxでファイルの末尾をリアルタイムで表示し続けるためのオプションです。新しい行がファイルに追加されると、その内容が自動的に画面に表示されます。
たとえば、ログファイルなどが更新されるたびに内容をチェックしたいときに便利です。ログ監視、デバッグ、サーバー運用など、さまざまな場面で活躍します。
2. 基本的な使い方と構文
構文はとてもシンプルです。
tail -f ファイル名
たとえば、/var/log/syslogというログファイルをリアルタイムで監視したい場合は、次のように入力します。
tail -f /var/log/syslog
Sep 16 09:00:01 localhost systemd[1]: Starting Daily Cleanup...
Sep 16 09:00:02 localhost systemd[1]: Finished Daily Cleanup...
この状態で、ファイルに新しいログが追加されると、それが自動的に画面に表示されていきます。
3. tail -fが使われる代表的な場面
tail -fは主に次のような場面で使用されます。
- エラーログの監視:アプリやシステムの不具合をリアルタイムで確認
- サーバーのアクセス状況確認:誰がいつアクセスしたかを即時に表示
- 開発中の動作確認:プログラムの出力ログをリアルタイムでチェック
とくに、Apacheやnginxのアクセスログ、シェルスクリプトの動作確認時に重宝されます。
4. tail -fと同時に行数も指定する(-nとの組み合わせ)
-nオプションと組み合わせると、最初に何行表示してから監視を開始するかを指定できます。
tail -n 5 -f /var/log/syslog
Sep 16 09:10:01 localhost cron[1234]: (root) CMD (some-task)
Sep 16 09:11:02 localhost cron[1235]: (root) CMD (some-task)
Sep 16 09:12:01 localhost cron[1236]: (root) CMD (some-task)
Sep 16 09:13:02 localhost cron[1237]: (root) CMD (some-task)
Sep 16 09:14:01 localhost cron[1238]: (root) CMD (some-task)
このように、最後の5行を表示しつつ、その後のログ追加をリアルタイムで監視できます。
5. 複数ファイルを同時に監視する
tail -fは、複数のファイルを同時に監視することもできます。
tail -f file1.log file2.log
==> file1.log <==
ログの内容...
==> file2.log <==
別のログの内容...
複数のログファイルをまとめて見たいときに便利です。ただし、ログが頻繁に更新されると見づらくなるため注意が必要です。
6. tail -Fとの違い
tail -fと似たオプションに-F(大文字)があります。これは、ログローテーションなどでファイルが差し替えられたときにも、自動的に追跡を続けてくれる便利なオプションです。
tail -F /var/log/syslog
ファイルが削除されたり、新しく作成されても、監視が継続されるので、より堅牢な監視が必要なときは-Fを使いましょう。
7. tail -fの終了方法
tail -fは通常、Ctrl + Cキーで監視を終了します。これは多くのLinuxコマンドで共通の終了操作なので覚えておくと便利です。
止めない限り永遠に表示が続くので、放置には注意しましょう。
8. ログ監視をもっと見やすくしたい場合
tail -fの出力に色をつけたいときは、cczeやmultitailといったコマンドと組み合わせると見やすくなります。ただし、これらは追加でインストールが必要です。
初心者のうちはまずtail -fで基本を押さえるのがおすすめです。