はじめに

こんにちは!今回はtailコマンドについて解説します。

tailはファイルの末尾を表示するコマンドです。ログファイルの最新情報を確認するときに、めっちゃよく使います。

「ファイルの最後の部分を見たい」ってときに便利。ログ監視の基本コマンドですね。

tailコマンドとは

tailは、ファイルの最後の行を表示する外部コマンドです。デフォルトでは最後の10行を表示します。

アプリケーションやシステムのログファイルは容量が大きいことが多いので、tailで最新のログだけを確認します。-fオプションでリアルタイム監視も可能な、便利なコマンドです。

基本構文

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

デフォルトではファイルの最後の10行を表示します。

主なオプション

オプション 説明
-n 行数 表示する行数を指定(デフォルト10)
-f ファイルを監視(追記されたら表示)
-F -fと同様(削除・回転されたファイルも追跡)
-c バイト 最後のバイト数を表示
-q ファイル名を表示しない
--pid=PID プロセスが終了したら監視を中止

使用例

例1: 基本的なtail

1
tail /var/log/syslog

実行結果:

1
2
3
Jan  3 10:15:22 server kernel: [12345.678901] Out of memory: Kill process
Jan  3 10:15:23 server kernel: [12345.679001] Killed process 5678 (python)
(最後の10行が表示される)

ログファイルの最後の10行を表示。

例2: 表示行数を指定

1
tail -n 20 /var/log/syslog

実行結果:

1
(最後の20行が表示される)

最後の20行を表示。-nを省略してtail -20でも同じです。

例3: リアルタイム監視

1
tail -f /var/log/apache2/access.log

実行結果:

1
2
3
192.168.1.100 - - [03/Jan/2026 10:15:22] "GET / HTTP/1.1" 200 1234
192.168.1.101 - - [03/Jan/2026 10:15:23] "GET /api/user HTTP/1.1" 200 5678
(新しく追記された行が表示され続ける)

ログファイルを監視。新しく追記された行がリアルタイムで表示されます。Ctrl+Cで停止。

例4: ファイル回転に対応した監視

1
tail -F /var/log/nginx/access.log

実行結果:

1
(新しく追記された行が表示され続ける)

-Fオプションでログローテーション(ファイルが削除・置換される)に対応。ずっと監視できます。

例5: 特定の行数から表示

1
tail -n +100 /var/log/syslog

実行結果:

1
(100行目から最後までが表示される)

100行目以降のすべての行を表示。+をつけると「この行以降」という意味になります。

例6: バイト数を指定

1
tail -c 1024 /var/log/syslog

実行結果:

1
(最後の1024バイトが表示される)

最後の1024バイトを表示。行単位ではなくバイト単位での指定ができます。

例7: 複数ファイルの監視

1
tail -f /var/log/syslog /var/log/auth.log

実行結果:

1
2
3
4
5
6
7
==> /var/log/syslog <==
syslogの最後の10行

==> /var/log/auth.log <==
auth.logの最後の10行

(新しく追記された行が表示される)

複数ファイルをリアルタイム監視。

例8: パイプで他コマンドと組み合わせ

1
tail -f /var/log/apache2/access.log | grep ERROR

実行結果:

1
192.168.1.100 - - [03/Jan/2026 10:15:22] "GET /error HTTP/1.1" 500

ログから特定のパターンのみを抽出。エラーログの監視に便利。

Tips・注意点

tailとheadの違い

1
2
tail -n 10 file.txt    # ファイルの最後の10行
head -n 10 file.txt    # ファイルの最初の10行

headはファイルの先頭を表示。用途で使い分けます。

ログ監視時のタイムスタンプ付き

1
tail -f /var/log/syslog | while read line; do echo "$(date '+%H:%M:%S') $line"; done

ログの各行に現在時刻を付与。トラブル発生時刻の特定に便利。

Ctrl+C以外での監視終了

1
tail --pid=$$ -f /var/log/syslog

親プロセスが終了すると自動で監視を中止。スクリプト内での利用に便利。

実践的な使い方

Webサーバーログの監視

1
tail -f /var/log/apache2/access.log | grep "GET /api"

APIリクエストのみを監視。アクセスパターン分析に利用できます。

システムエラーの監視

1
tail -f /var/log/syslog | grep -i error

システムログからエラーをリアルタイム抽出。問題発生の早期検知ができます。

デバッグログの確認

1
tail -f /var/log/myapp/debug.log

開発中のアプリケーションログを監視。デバッグに必須です。

ログのグレップと行番号

1
tail -n 1000 /var/log/syslog | grep -n "pattern"

最後の1000行からパターンを検索。問題発生箇所の特定に便利。

まとめ

tailコマンドのポイント:

  • ファイルの末尾を表示する基本コマンド
  • -n 行数: 表示する行数を指定(デフォルト10)
  • -f: ファイルをリアルタイム監視
  • -F: ログローテーション対応の監視
  • -c バイト: バイト数を指定
  • +行番号: 指定行以降を表示
  • よく使う組み合わせ: tail -f, tail -n 20

ログファイルはどんどん成長するので、tailでここ最近のログだけを見ることが大切です。ログ監視はシステム管理の基本。tail -fで監視する癖をつけておくと、トラブル対応がグッと楽になりますよ!