Bash 速習チュートリアル

Bash tailコマンド

1. tailコマンドの使用方法

tailコマンドは、ファイルの末尾部分を表示するために使用されます。
特に、ログファイルの末尾を確認する場合や、リアルタイムで更新されているファイルの最新情報を監視する場合に非常に便利です。

1.1 構文

tailコマンドの基本的な構文は以下の通りです。

tail [オプション]... [ファイル]...

1.2 実行例

ファイルを指定すると、デフォルトで末尾の10行が表示されます。

tail logfile.txt
# 出力結果:
line 91
line 92
line 93
line 94
line 95
line 96
line 97
line 98
line 99
line 100

2. オプション

tailコマンドには、動作をカスタマイズするためのいくつかのオプションが用意されています。

  • -n [数値]:末尾から指定した[数値]分の行数を表示する。
  • -f:ファイルが追記されるのに合わせて出力を継続する(ログ監視に最適)。
  • -c [数値]:末尾から指定した[数値]分のバイト数を表示する。
  • --pid=[pid]:指定したPIDのプロセスが終了した際に、tailも終了する。
  • --retry:ファイルが一時的にアクセス不能になっても、再試行を繰り返す。

2.1 -n [数値] オプション

-nオプションを使用すると、ファイルの末尾から表示する行数を指定できます。
デフォルトでは、tailは最後の10行を表示します。

例:末尾の5行を表示する

tail -n 5 logfile.txt
# 出力結果:
line 96
line 97
line 98
line 99
line 100

2.2 -f オプション

-f(follow)オプションは、ファイルに新しい内容が書き込まれるのを監視し、リアルタイムで表示し続けるために使用されます。サーバーログなどの動的なモニタリングに不可欠な機能です。

例:ログファイルを追跡(フォロー)する

tail -f logfile.txt
# 出力結果:
line 91
line 92
...
line 100
line 101  # 新しく追記されると自動で表示されます

2.3 -c [数値] オプション

-cオプションを使用すると、行数ではなく、指定した「バイト数」で末尾からデータを表示します。

例:末尾の20バイトを表示する

tail -c 20 logfile.txt
# 出力結果:
end of logfile.txt

2.4 --pid=[pid] オプション

--pidオプションは、指定したプロセスID(PID)が終了すると、tailの実行も停止させます。特定のプロセスと連動してログ監視を終了させたい場合に便利です。

例:プロセス終了後にtailを停止する

tail -f --pid=1234 logfile.txt
# PID 1234のプロセスが動いている間、監視を継続します
line 91
line 92
line 93...

2.5 --retry オプション

--retryオプションを指定すると、対象のファイルが削除されたりアクセスできなくなったりしても、再オープンを試み続けます。一時的なネットワークエラーやログローテーションが発生する環境で有効です。

例:ファイルオープンを再試行する

tail --retry -f logfile.txt
# ファイルが存在しない場合の出力例:
tail: cannot open 'logfile.txt' for reading: No such file or directory
# ファイルが作成されると自動的に読み込みを開始します
line 91
line 92
line 93...

3. 主なユースケース

tailコマンドが真価を発揮する主なシーンは以下の通りです。

  • サーバーログの監視: リアルタイムでエラーを検出し、インフラの健全性を確認する。
  • 最新エントリーの確認: 継続的に更新されるデータの最終入力をチェックする。
  • アプリケーションのデバッグ: 直近のログエントリーをレビューし、コードの挙動を追跡する。