tail コマンドはファイルや入力ストリームの末尾を表示します。動作を続けてファイルへ追記されたデータを表示することもでき、ログの観察に便利です。
テキスト操作 · レッスン 9
tail
入力の末尾を表示し、ファイルへ追記される新しい内容を継続して確認する方法を学びます。
末尾の 10 行を表示する
件数オプションがなければ、tail は指定した各ファイルの末尾 10 行を表示します。
$ tail application.log
10 行未満なら存在する全行を表示し、ファイル自体は変更しません。
tail application.log は標準で何を表示しますか?
行数またはバイト数を選ぶ
末尾から異なる行数を選ぶには -n NUMBER、バイト数なら -c NUMBER を使います。
$ tail -n 20 application.log
$ tail -c 100 payload.bin
バイトモードはテキスト行や符号化文字の途中から始まることがあるため、テキストには通常、行モードが明確です。
application.log の末尾 20 行を表示するコマンドはどれですか?
特定の行から開始する
+ の付いた件数は意味が変わり、tail -n +N は N 行目から末尾まで表示します。
$ tail -n +5 report.txt
これは先頭 4 行を飛ばして 5 行目から開始します。既知のヘッダー行数をストリームから除くときに便利です。
report.txt を 5 行目から表示するコマンドはどれですか?
追記されるデータを追跡する
-f を使うと最初の末尾を表示した後も動作を続け、追記されたデータを表示します。
$ tail -f application.log
Ctrl+C で tail を中断してシェルへ戻ります。ファイルの追跡は新しい内容を表示するだけで、ログを生成するアプリケーションの正常性や、すべての関連イベントがそのファイルへ入ることを保証しません。
application.log の現在の末尾を表示し、追記される内容を待ち続けるコマンドはどれですか?
ローテーションされたログを名前で追跡する
ログローテーションでは古いファイルを改名し、元のパスに新しいファイルを作ることがあります。GNU tail -F は名前で追跡しながら再試行するため、置換されたファイルや一時的に見つからないファイルを再度開けます。
$ tail -F application.log
現在開いているファイルを追跡するなら -f、名前付きログがローテーションされるなら -F を使います。これは GNU の動作で、他の実装は異なることがあります。
GNU/Linux で、一般的な改名と再作成によるローテーションをまたいで application.log を追うのに適したオプションはどれですか?
ファイル名がなければ tail は stdin を読み、コマンド出力の末尾を選べます。複数ファイルには head と同様、標準で識別用ヘッダーが付きます。
ファイル末尾の表示と追跡を練習するには、次のラボを試してください。
- Linux tail コマンド:ファイル末尾の表示 -
tailと-fでテキストファイルの末尾を表示、監視します。 - Linux でログと設定ファイルを表示する -
tail、cat、moreでログや設定を確認します。 - 迅速な脅威検知 -
tailで最近のログ項目を抽出し、分析します。
レッスン完了
tail を完了しました
tail でファイル末尾を確認し、新しく追記された内容を観察できるようになりました。
標準では末尾 10 行を表示する。
行数またはバイト数を明示的に選ぶ。
-n +Nで番号付きの行から出力を開始する。-fで追記を追跡し、Ctrl+Cで停止する。名前付きログがローテーションされる場合は GNU
-Fを使う。