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件を見るcurlコマンドとは?Web APIのテストやHTTP・JSON通信の実践例
URLを叩いて様々なリクエストを送信できる「curl」コマンドについて、REST APIのテスト(GET/POST)やヘッダー確認などの実務での使い方を解説。
Cannot connect to the Docker daemon の原因と解決策
Dockerコマンド実行時に「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」と表示されるエラーの直し方を解説します。
sshコマンドとは?公開鍵認証の仕組みと安全なサーバー接続の実務
Linuxの遠隔操作に必須の「ssh」コマンドについて、公開鍵・秘密鍵を使った安全な接続方法(公開鍵認証)や実務でのポート指定などを解説します。
error: failed to push some refs to の原因
`git push` した時に「リモート側に自分が持っていない変更がある」として拒否された場合の原因と、`git pull` や `git push -f` の判断基準を解説します。
git stash コマンドの使い方(作業の一時避難)
コミットせずに今の作業を一時保存できる `git stash` コマンドの使い方(保存・復元・一覧・削除)を実務ベースで解説します。
chmodコマンドとは?Linuxの権限(パーミッション)変更を分かりやすく解説
Linuxの必須コマンド「chmod」について、777や644といった数字の意味から、実務でよく使う権限設定の定石まで徹底解説します。