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件を見るchmodコマンドとは?Linuxの権限(パーミッション)変更を分かりやすく解説
Linuxの必須コマンド「chmod」について、777や644といった数字の意味から、実務でよく使う権限設定の定石まで徹底解説します。
error: failed to push some refs to の原因
`git push` した時に「リモート側に自分が持っていない変更がある」として拒否された場合の原因と、`git pull` や `git push -f` の判断基準を解説します。
sshコマンドとは?公開鍵認証の仕組みと安全なサーバー接続の実務
Linuxの遠隔操作に必須の「ssh」コマンドについて、公開鍵・秘密鍵を使った安全な接続方法(公開鍵認証)や実務でのポート指定などを解説します。
Gitの Detached HEAD の意味と直し方
ブランチ名ではなく特定のコミットIDを直接チェックアウトした状態「Detached HEAD」から、安全に元のブランチに戻る方法を解説します。
pingコマンドとは?ネットワーク疎通確認の仕組みと実務での活用
ネットワークの基本コマンド「ping」について、サーバー間の通信が届いているかを確認する仕組みとトラブルシューティングの初動対応を解説。
git stash コマンドの使い方(作業の一時避難)
コミットせずに今の作業を一時保存できる `git stash` コマンドの使い方(保存・復元・一覧・削除)を実務ベースで解説します。