最新のログファイルの日付が変更されたときにログファイルを追跡し、追跡を続ける方法は?

最新のログファイルの日付が変更されたときにログファイルを追跡し、追跡を続ける方法は?

RHEL4を使用しています。

tail -F file_name*.log時間が0000にロールオーバーすると、法線は更新されません。

これまでWeb検索でネストを使用しようとしたことは次のとおりですtail

tail -F $(ls -tr file_name*.log | tail -n 1)

tail -F $(fine . -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail n 1 | cut -d' ' -f 2-)

これらのどれも新しいファイルにロールオーバーしません。平凡で古いtail -F file_name*.logアプローチは私の小さなテストケースではうまくいきますが(上記の2では動作しません)、実際のログファイルを追跡しても機能しません。

答え1

tail単一ファイルまたは起動時に決定された最大ファイルセットを監視します。コマンドでは、tail -F file_name*.logシェルは最初にワイルドカードパターンを展開し、その時点で存在するtailすべてのファイルからそれを呼び出します。

ワイルドカードベースのファイルセットを監視するには、次のものを使用できます。マルチテール

multitail -iw 'file_name*.log' 1

答え2

これはうまくいきません。最新のファイルを決定するために使用するサブシェルは一度だけ実行されます。シェルはワイルドカードを一度だけ評価するため、globは機能しません。

これを処理する1つの方法は、「ウォッチ」を使用してプロセス全体を実行することです。ただし、これにより数秒ごとに出力が破損します。

答え3

尾を追跡するには、何かを書く必要があるかもしれません。または、深夜にログ(またはログ)をローリングしないようにシステムを構成します。どちらもスクロールすると、テールログファイルのファイルハンドルがリセットされます。

関連情報