
誤って端末で次のコマンドを実行しました。
tail -f /logs/applications/logs*
次の結果が表示されます。
tail: file shrunk!
Error 0
正確に何が起こったのかよくわかりません。ディレクトリ内のファイル数を追跡してからかなり古い。誰かが正確に何が起こっているのか、ファイルが見つからないのかを説明してもらえますか?
編集する:
偶然かどうかはわかりませんが、コードを実行してからディレクトリにあるファイル数を数えてみると10個でした!
初めて10という数字を見たときに本当に編集証的な感じがしました...
答え1
正確に何が起こったのかよくわかりません。
ファイルが外部アプリケーションによって回転される場合が発生します。これは一般的です。次のユーティリティlogrotate
回転するログファイル、つまり既存のログファイルの内容を別のファイルに移動し、既存のログファイルを削除します。パンチアウトアプリケーションが書き換えを開始する前に。
tail
トレースファイルのサイズが小さくなったことが確認されたら、観察したメッセージを印刷してファイルトレースを続行します。
から引用tail invocation
部分GNU coreutils マニュアル:
どの方法を使用しても、追跡されたファイルが縮小されたと判断された場合、
tail
ファイルが切り捨てられたというメッセージが印刷され、新しく決定されたエンドポイントからファイルの終わりまで追跡が続行されます。
答え2
tail
いいえ、コマンドはファイルの終わりのみを表示するため、ファイルは失われませんでした。
渡す/logs/applications/logs*
ことは、tail
複数のファイル/フォルダ(パターンに一致するすべて)を渡すことと同じです/logs/applications/logs*
。このパターンはディレクトリとも一致する可能性があるため、この場合はtail
機能しません。