tailコマンドとは?リアルタイムなログ監視の実務テクニックを解説
ファイルの末尾を表示する「tail」コマンドについて、-fオプションを使ったリアルタイムなログ監視やエラー調査の基本を解説します。
tailコマンドとは?
tail(テイル)は、テキストファイルの末尾(下部)にある数行だけを画面に表示するためのLinuxコマンドです(反対に先頭部分を表示するコマンドはheadと言います)。
デフォルトでは指定したファイルの最後の10行を表示します。
主な役割とメリット
日々肥大化していくログファイル(数GBになることもある)をエディタで開こうとすると、サーバーのメモリを使い果たしてクラッシュする危険があります。
tailコマンドを使えば、ファイル全体を読み込まず末尾だけを即座に表示できるため、安全かつ高速に最新のステータスを確認できます。
どのような場面で使われるか
サーバーで障害が発生した際に直近のエラーログを確認したり、アプリケーションを手動デプロイした後の起動ログをリアルタイムで監視する際に利用します。
実務で必須の「-f」オプション(リアルタイム監視)
tailコマンドの真価は -f (follow) オプションにあります。
ファイルに新しい行が書き込まれる(追記される)たびに、その差分を画面にリアルタイムで出力し続けます。
- ログのリアルタイム監視:
tail -f /var/log/nginx/access.logWebサイトにアクセスがあるたびに、画面にカタカタと新しいログが流れていくのを確認できます。監視を終了するにはCtrl + Cを押します。
その他の便利な使い方
- 表示する行数を指定する (
-n):tail -n 100 app.log(最後の100行を表示) - grepとの組み合わせ:
tail -n 1000 error.log | grep "500 Internal"(直近1000行の中から特定のエラーだけを抽出)
実務上の注意点
ログファイルが日次でローテーション(古いファイルがリネームされ、新しいファイルが作成される処理)された場合、通常の -f オプションではローテーション後の新しいファイルを追跡できません。
よくあるエラーやトラブルシュート
- ログが出力されなくなった(ローテーション時の対応): 上記のローテーション対策として、大文字の
-Fオプション(tail -F /var/log/syslog)を使用するのが実務におけるベストプラクティスです。これにより、ファイルが再作成されたことを検知して自動で追尾を再開してくれます。
まとめ
システム障害時にエンジニアが最初に叩くコマンドの大半は tail -f です。
「今まさにシステムで何が起きているのか?」を把握するための最もシンプルで強力なツールですので、息をするように打てるようにしておきましょう。
関連する用語 (linux)
全12件を見るCannot connect to the Docker daemon の原因と解決策
Dockerコマンド実行時に「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」と表示されるエラーの直し方を解説します。
Gitの Detached HEAD の意味と直し方
ブランチ名ではなく特定のコミットIDを直接チェックアウトした状態「Detached HEAD」から、安全に元のブランチに戻る方法を解説します。
git stash コマンドの使い方(作業の一時避難)
コミットせずに今の作業を一時保存できる `git stash` コマンドの使い方(保存・復元・一覧・削除)を実務ベースで解説します。
git rebase と git merge の違い・使い分け
コミット履歴を綺麗に保つための `git rebase` の仕組みと、`merge` との決定的な違い、実務での使い分けについて図解します。
Gitのコンフリクト(競合)解消のやり方
複数人で同じファイルを編集して `git merge` や `git pull` した際に発生する「コンフリクト」の直し方と安全な運用方法を解説します。
grepコマンドとは?ログ調査やファイル検索の実践的な使い方を解説
Linuxの検索コマンド「grep」の基礎から、正規表現を使った高度な検索、実務でのログ調査テクニックまで詳しく解説します。