tailでログを行数表示|リアルタイム監視する【Linux】

tailでログを行数表示|リアルタイム監視する【Linux】

Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:2,240 / 総アクセス数:440 views

Linuxのtailコマンドを利用して、ファイルの末尾を行数指定で表示する方法やリアルタイムでログを監視する方法を解説します。tailコマンドの基本的な使い方から、-fや-Fオプションの違いや、複数ファイルの同時監視方法。grepとの組み合わせによるフィルタリングまで、実践的なノウハウを紹介します。

システム運用やアプリケーション開発に携わっていると、リアルタイムでログを確認したい場面があります。予期しないエラーや異常動作の兆候を素早く把握するためには、ログファイルの監視は不可欠です。そんなときに便利なのが、Linuxに標準搭載されているtailコマンドです。本記事では、このtailコマンドを使ってリアルタイムでログを監視する方法について、基本的な使い方から応用テクニックまで、詳しく解説していきます。

tailコマンドでファイルの末尾を表示

tailコマンドは、指定したファイルの末尾部分を表示するLinuxコマンドで、ログファイルなどの末尾の確認に特に適しています。デフォルトでは最後の10行を出力しますが、オプションを活用することで表示行数の変更やリアルタイム表示など、多様な使い方が可能です。 tailコマンド単独ではファイルの末尾を出力することができます。

tailコマンドの構文

以下のようにコマンドにファイル名を指定します。

実行コマンド
tail [ファイル名]

複数ファイルを指定することもできます。

実行コマンド
tail [ファイル名] [ファイル名] [ファイル名…]

-qオプションを利用すると、出力時にファイル名を非表示にすることができます。

実行コマンド
tail -q [ファイル名] [ファイル名] [ファイル名…]

tailコマンドで末尾の10行を表示

nginxのログ/var/log/nginx/access.logを例に説明します。
ファイルの末尾を表示します。

実行コマンド
tail /var/log/nginx/access.log

デフォルトでは10行が表示されます。

tailコマンドで末尾の100行を表示

-nオプションで表示行を指定することができます。
以下コマンドで末尾を100行表示します。

実行コマンド
tail -n 100 /var/log/nginx/access.log

tailコマンドでファイルの末尾を表示(リアルタイム)

ログファイルの内容が時間と共に更新される場合、常に最新の情報を確認したいというニーズがあります。そのようなときに使えるのが-fオプションです。これを使うことで、ログファイルの変化をリアルタイムでターミナル上に表示することができます。 tailコマンドの-fまたは-Fオプションを利用することで、ログをリアルタイムに表示することができます。 -Fオプションでは、ログローテーションに対応した監視が可能です。

-fでログをリアルタイム監視する

-fオプションで追記されたログをリアルタイム監視することができます。

実行コマンド
tail -f /var/log/nginx/access.log

このコマンドを実行すると、ファイルの末尾に新たに追加された行が都度表示されていきます。たとえば、Webサーバーのログやデータベースのエラーログなど、運用中に逐次更新されるファイルの監視にぴったりです。

また、ログを眺めながら動作確認やテストを行うことで、異常発生時の挙動を即座に把握できるため、デバッグの効率も向上します。

-Fでログをリアルタイム監視する

ログローテーション後も追従する場合は、-Fオプションを指定します。

実行コマンド
tail -F /var/log/nginx/access.log

以下のように-n 0の指定を組み合わせることで、追記されたログのみを表示できるので便利です。

実行コマンド
tail -F -n 0 /var/log/nginx/access.log

実際の運用では、複数のログファイルを同時に監視したいケースも珍しくありません。例えば、アプリケーションログと認証ログを同時にチェックしたい場合などです。 複数ファイルを追従する場合は、以下のように指定します。

実行コマンド
tail -F -n 0 -q /var/log/syslog /var/log/auth.log

ファイル名を表示せずに内容だけを表示したい場合に-qオプションを指定します。

-fと-Fオプションの違いと使い分け

-fオプションに加えて、-Fオプションも覚えておくと便利です。-Fオプションは、-fの機能に加え、監視対象のファイルが切り替わった場合でも(例:ログローテーションでファイルが新しくなった場合)自動的に新しいファイルに追従します。

コマンド例
tail -F /var/log/syslog

ログローテーションが定期的に行われる環境では、-fではなく-Fを使うことで、ログ監視が途切れる心配を減らすことができます。特にサーバーの長時間監視などでは、-Fを使うのがベストプラクティスと言えるでしょう。

実践例:アプリケーションログのデバッグ

例えば、Webアプリケーションでエラーが発生したとき、その原因を素早く突き止めたいときには以下のようにログを監視します。

コマンド例
tail -F /var/www/app/log/error.log

このままでも効果的ですが、特定のキーワード(例えば「ERROR」や「WARNING」など)を含む行だけを見たい場合は、grepとパイプで組み合わせて使うと、さらに便利です。

コマンド例
tail -F /var/www/app/log/error.log | grep ERROR

これにより、大量のログの中からエラーに関連する情報だけを抽出して表示でき、トラブルシューティングのスピードが格段に上がります。grep -iを使えば大文字・小文字を区別せずに検索することも可能です。

Terminal window
tail -F /var/www/app/log/error.log | grep -i error

tailコマンドまとめ

各オプションの意味は以下の通りです。

オプション意味
-n最後のn行を表示する。
-f追加されたデータを表示する。
-F追加されたデータを表示する。(ログローテーション後も追従)
-q複数のファイルを指定した場合、ファイル名を表示せずに内容だけを表示。

ログ監視をする際は-fではなく、ログローテーションに対応した-Fを使用するのが、 おすすめです。

Linuxのtailコマンドは、ログファイルの末尾を柔軟かつリアルタイムに確認できる、便利なコマンドです。-fオプションを使えばシンプルにログを追跡でき、-Fを使えばログローテーションにも対応できます。さらに、grepなどの他のコマンドと組み合わせることで、目的の情報を効率よく抽出することが可能になります。

日々の運用監視やトラブル対応、アプリケーションのデバッグ作業など、あらゆる場面で活躍するtailコマンド。基本的な使い方を押さえた上で、応用的なテクニックも積極的に取り入れ、より効率的なシステム管理を目指しましょう。

Linuxユーザにお勧めの本

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ


以上で本記事の解説を終わります。
よいITライフを!

Linuxユーザにお勧めの本

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

人気記事


記事を評価

Thanks!
目次
Scroll to Top