tail -Fオプションの使い方を完全ガイド!ログローテート後も追跡する方法
生徒
「Linuxでログファイルをリアルタイムに監視してるんですけど、ファイルがローテートされたら追えなくなってしまいます…どうしたらいいですか?」
先生
「そんなときは、tailコマンドの-Fオプションを使うと便利ですよ。」
生徒
「それって-fとは違うんですか?」
先生
「はい、-Fはファイルが入れ替わっても追跡を続けてくれるんです。詳しく見ていきましょう!」
1. tailコマンドとは?
tail(テイル)コマンドは、Linuxでファイルの末尾を表示するコマンドです。特にログファイルなど、どんどん追記されるファイルの「最後の数行」を確認したいときによく使われます。
例えば、Webサーバーのアクセスログの最新の記録を見たいときなどに便利です。
tail /var/log/syslog
(ファイルの末尾10行が表示されます)
2. -fオプションの基本|追記をリアルタイムで追う
tail -fとすることで、ファイルに新しく書き込まれた内容をリアルタイムで追いかけることができます。まるで生中継のようにファイルの更新が表示されていくため、「ログ監視」に最適です。
tail -f /var/log/syslog
(新しいログ行が追加されると自動で表示される)
ただし、この-fは、ファイルが途中で「別のファイルに差し替えられた」場合には、追跡をやめてしまいます。これが問題になるのが次の「ログローテート」です。
3. ログローテートとは?初心者向けにやさしく解説
Linuxでは、ログファイルが大きくなりすぎないように、定期的に古いログを別のファイルに分割して保存する仕組みがあります。これを「ログローテート」と呼びます。
例えば/var/log/syslogが大きくなったら、自動で/var/log/syslog.1にリネームされて、新しい/var/log/syslogが作られます。
このとき、-fオプションでは「新しく作られたファイル」までは追いかけられません。結果としてログ監視が止まってしまいます。
4. -Fオプションを使えばローテート後も安心!
そこで活躍するのが-F(大文字)オプションです。これは「ファイルのローテートにも対応する」という機能を持っています。
-Fは、内部的には--follow=nameと--retryを組み合わせた動作になります。つまり、ファイルが削除されて新しく作られても、同じパスのファイルを探し続けてくれるのです。
tail -F /var/log/syslog
(ログローテート後も監視が継続される)
このように、-fではなく-Fを使うだけで、ログファイルの監視を止めずに続けることができるのです。
5. -fと-Fの違いをまとめて比較
| オプション | 動作 | ローテート対応 |
|---|---|---|
-f | ファイル末尾をリアルタイムで表示 | ✕(追跡終了) |
-F | ファイルが切り替わっても追跡継続 | 〇(自動追跡) |
6. tail -Fの活用例|ログ監視やデバッグに最適
例えばApacheのアクセスログをリアルタイムで見たい場合、次のように使います。
tail -F /var/log/apache2/access.log
192.168.1.10 - - [16/Sep/2025:15:45:01 +0900] "GET /index.html HTTP/1.1" 200 512
ファイルが切り替わっても監視が途切れず続くため、デバッグや運用時のログ確認に非常に便利です。
7. よく使われるオプションの組み合わせ
-nオプションと組み合わせると、最初に表示する行数を指定できます。たとえば最新の20行を表示してから追跡を始めたい場合は次のようにします。
tail -n 20 -F /var/log/syslog
(最新20行+その後の更新を表示)
8. 他の類似コマンドとの比較|lessやmultitailとの違い
lessコマンドでもFキーを使えば末尾を追跡できますが、ローテート後は自動では追えません。
また、multitailというツールを使えば、複数のログを色付きで表示できますが、インストールが必要になります。
その点、tail -Fは標準で使えて、シンプルに強力な監視ができるのが特徴です。
9. tail -Fはsudo不要?一般ユーザーで使える?
tail -Fは基本的に一般ユーザーでも使用可能です。ただし、ログファイルの読み取り権限が必要です。
たとえば/var/log/syslogや/var/log/auth.logなどは、通常rootのみ読み取り可能なことがあります。その場合はsudoを使う必要があります。
sudo tail -F /var/log/auth.log
(認証ログをroot権限で追跡)
まとめ
tailコマンドの中でも特に重要なオプションである大文字のFは、ログ監視やサーバー運用において非常に実用的な機能です。通常の小文字のfオプションでは、ファイルの末尾をリアルタイムで追跡することはできますが、ログローテートが発生した場合には新しいファイルを追跡できず、結果として監視が止まってしまうという問題がありました。これに対してFオプションは、ファイル名を基準にして再接続を行う仕組みを持っており、ログファイルが切り替わったあとでも継続して監視できるという大きなメリットがあります。
Linux環境では、syslogやauthログ、Webサーバーのアクセスログなど、常に更新され続けるファイルが数多く存在します。こうしたログファイルは一定のサイズになると自動的にローテートされるため、安定した監視を行うにはFオプションの理解が欠かせません。特に運用現場では、エラー発生時の原因追跡やリアルタイムな状況把握が重要になるため、tail Fの活用は基本スキルのひとつといえるでしょう。
また、nオプションと組み合わせることで、直近のログを確認しながらその後の更新も追跡できるため、デバッグ作業の効率が大きく向上します。例えばアプリケーションの動作確認やサーバーのレスポンス確認など、さまざまなシーンで役立ちます。シンプルなコマンドでありながら応用範囲が広く、初心者から上級者まで幅広く使われている理由がここにあります。
以下は実際の活用例です。ログローテートが発生しても問題なく追跡し続ける様子を確認できます。
tail -F /var/log/syslog
Mar 25 10:00:01 server systemd[1]: Started Session 101 of user
Mar 25 10:00:05 server CRON[1234]: Job started
Mar 25 10:05:01 server systemd[1]: log rotated
Mar 25 10:05:02 server systemd[1]: New log file created
Mar 25 10:05:03 server CRON[5678]: Job continued
root権限が必要なログファイルに対しては、sudoを併用することで同様に監視が可能です。権限管理も含めて理解しておくことで、より安全かつ効率的にLinuxシステムを扱えるようになります。
sudo tail -F /var/log/auth.log
Mar 25 10:10:01 server sshd[2222]: Accepted password for user
Mar 25 10:12:45 server sudo: user executed command
このように、tailコマンドのFオプションは単なるログ表示を超えて、システム監視やトラブルシュートに欠かせない存在です。Linux初心者の方でもすぐに使い始めることができ、実務レベルでもそのまま活用できる点が大きな魅力です。日々の操作の中で繰り返し使うことで、自然と理解が深まり、より高度なコマンド操作にもつながっていきます。
生徒
tailコマンドのFオプションを使うと、ログローテートが起きても監視が止まらないということがよく分かりました。今まではfを使っていて途中で止まってしまうことがあったので、その原因も理解できました。
先生
その理解で大丈夫です。Fはファイル名を基準に再接続するので、運用環境では特に重要です。ログ監視を継続したい場合は、基本的にこちらを使うようにすると良いでしょう。
生徒
nオプションと組み合わせることで、過去のログとリアルタイムのログを同時に確認できるのも便利ですね。デバッグのときに役立ちそうです。
先生
その通りです。ログの最初からではなく、直近の状態を確認しながら追跡できるので効率的です。実務でもよく使われる組み合わせです。
生徒
root権限が必要なログについても理解できました。sudoを使えば同じように監視できるのですね。
先生
はい。権限の違いを意識しながらコマンドを使い分けることも大切です。今回学んだ内容は、Linuxの基本操作として非常に重要なので、ぜひ実際の環境で試してみてください。