Linuxコマンドtailの使い方と3つのオプション

Linuxコマンドtailは、ログファイルの解析やリアルタイムのモニタリングでよく使用される便利なツールです。この記事では、tailコマンドの基本的な使い方から高度なオプションまでをわかりやすく説明します。

Linuxコマンドtailとは?

tailは、ファイルの末尾部分を出力するLinuxコマンドです。主に、ログファイルの最新情報を確認したり、ファイルの最後の部分を素早く確認したりする際に使用されます。基本的に、tailコマンドはファイルの最後の10行を出力します。しかし、さまざまなオプションを使用して、出力する行数を調整したり、リアルタイムでモニタリングしたりすることが可能です。

tailコマンド基本使い方

最も基本的なtailコマンドの使い方は以下の通りです:

tail ファイル名
ShellScript

例えば、system.logというファイルの最後の10行を確認したい場合、次のように入力します:

tail system.log
ShellScript

このコマンドを実行すると、system.logファイルの最後の10行がターミナルに表示されます。

基本オプション

tailコマンドにはいくつかのオプションがあり、必要に応じてさまざまな方法でファイルを出力することができます。ここでは、よく使われるいくつかのオプションを紹介します。

-nオプション: 出力する行数を指定

デフォルトではtailは最後の10行を出力しますが、-nオプションを使用すると出力する行数を指定できます。例えば、最後の5行を確認したい場合は次のように入力します:

tail -n 5 /var/log/syslog
ShellScript

このコマンドは、/var/log/syslogファイルの最後の5行を出力します。

図1. Linuxコマンドtail: -nオプションで出力行数を指定
図1. Linuxコマンドtail: -nオプションで出力行数を指定

-fオプション: リアルタイムファイルモニタリング

tailコマンドの最も便利な機能の1つが、-fオプションです。このオプションは、ファイルの末尾部分をリアルタイムでモニタリングする際に使用されます。ログファイルがリアルタイムで更新される際、その内容を継続的に確認できます。

tail -f system.log
ShellScript

このコマンドを実行すると、system.logファイルの最後の10行が表示され、新しい内容が追加されるたびにリアルタイムで表示されます。この機能は、サーバーログをリアルタイムでモニタリングする際に非常に便利です。例えば、最後の5行を出力して、ログをリアルタイムでモニタリングすることができます。

図2. Linuxコマンドtail: -fオプションでリアルタイムファイルモニタリング
図2. Linuxコマンドtail: -fオプションでリアルタイムファイルモニタリング

–retryオプション: ファイルが生成されるまで待機

–retryオプションは、ファイルが現在存在しなくても、ファイルが生成されるまで待機してから出力を開始する機能です。例えば、ログファイルが後で生成されることを予想して、あらかじめtailコマンドを実行することができます。

tail -f --retry system.log
ShellScript

このコマンドを実行すると、system.logファイルが存在しない場合、そのファイルが生成されるまで待機し、ファイルが生成されるとリアルタイムモニタリングを開始します。例えば、a.logというファイルを作成し、その内容を追加すると、ファイルが生成されたことを通知し、内容をモニタリングします。

図3. Linuxコマンドtail: --retry ファイルが生成されるまで待機
図3. Linuxコマンドtail: –retry ファイルが生成されるまで待機

tailの隠れた機能: 複数のファイルを同時に表示

tailコマンドは、一度に複数のファイルを同時にモニタリングすることも可能です。複数のファイルを同時に確認したい場合、ファイル名をスペースで区切って列挙します。

tail -f system.log application.log
ShellScript

このコマンドを使用すると、system.logとapplication.logの2つのファイルを同時にリアルタイムでモニタリングでき、それぞれのファイルが更新されるたびに内容が表示されます。これは、複数のログファイルを同時に追跡する必要がある場合に非常に便利です。

例えば、a.logファイルと/var/log/syslogを使用してテストすると、まず各ファイルの最後の10行がファイル名とともに表示されます。

図4. Linuxコマンドtail: 複数のファイルを同時にモニタリング1
図4. Linuxコマンドtail: 複数のファイルを同時にモニタリング1

その後、追加されたログは、どのファイルに記録されたかをファイル名で知らせ、他のファイルに内容が追加される場合はファイル名を再度通知して、追加された内容を表示します。

図5. Linuxコマンドtail: 複数のファイルを同時にモニタリング2
図5. Linuxコマンドtail: 複数のファイルを同時にモニタリング2

tailコマンド使用時の注意点

tailコマンドは簡単で便利ですが、いくつか注意すべき点があります。

  • リアルタイムモニタリングの中断: -fオプションでリアルタイムモニタリングを行っている際は、ターミナルを終了する前に必ずCtrl + Cを押してモニタリングを中断する必要があります。そうしないと、ターミナルがtailコマンドによって占有され、他の作業ができなくなります。
  • 大容量ファイルの処理: 大容量ファイルの場合、tailコマンドがシステムリソースを多く消費することがあります。特にリアルタイムモニタリング中に大容量のログファイルが急速に増加すると、システムが遅くなる可能性があるため注意が必要です。
  • パーミッションの問題: ログファイルをモニタリングしようとする際、ファイルに対する読み取り権限が必要になる場合があります。アクセス権限のないファイルに対してはtailコマンドを使用できないため、sudoコマンドを併用する必要があるかもしれません。

まとめ

Linuxでのtailコマンドは、ファイルの末尾部分を簡単に確認したり、リアルタイムでログをモニタリングしたりするのに非常に便利なツールです。基本的な使い方はもちろん、さまざまなオプションを活用することで、より効率的にファイルを管理することができます。

リアルタイムモニタリング用の-fオプションや、行数を調整する-nオプションなどは、ぜひ覚えておきたい機能です。また、複数のファイルを同時にモニタリングできる点も大きな利点です。ただし、システムリソースの使用やファイルアクセス権限に関する注意が必要ですので、これらを考慮しながら使用してください。

今後は、tailコマンドをうまく活用して、Linux環境でより効果的に作業を進めてみてください!

リファレンス

関連ポスト

コメントする