RHEL 4を使用しています。
通常の_tail -F file_name*.log
_は、時間が0000に切り替わっても更新されません。
これが私がこれまでウェブを検索することから試みたもので、どちらもネストされた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つの方法は、 'watch'を使用してすべてを実行することですが、これにより、出力が非常に多くの秒ごとにハッキングされます。
tail
は、単一のファイル、または最大で起動時に決定される一連のファイルを監視します。コマンドtail -F file_name*.log
、最初にシェルはワイルドカードパターンを展開し、次にtail
がその時点で存在するファイルに対して呼び出されます。
ワイルドカードに基づいて一連のファイルを監視するには、 multitail を使用できます。
multitail -iw 'file_name*.log' 1
おそらく、尾を引くために何かを書かなければならないでしょう。または、深夜にログ(またはそのログ)をロールしないようにシステムを構成します。どちらにしても、ロールされたときにテールログファイルのファイルハンドルがリセットされます。