時限回転ファイルロガーを使用していくつかのログが生成されています。これはtool.log
というファイルにログを記録し、真夜中にこれをtool.log.<date>
に移動して新しいtool.log
を開始します。
マシンでtail -f tool.log
を実行してログを監視していますが、真夜中にtool.log
がtool.log.<date>
に名前が変更された場合、tail
は名前が変更されたのを引き続き監視しますファイル。
私が期待しているのは、tail
に似たツールですが、iノードを追跡するのではなく、tool.log
という名前のファイルを引き続き監視します。
このようなものは存在しますか?そうでない場合は、この目的のためにPythonで独自に書くことができます。
tail
の一部の実装には、このオプションがあります。 GNU tailのmanページからの説明です:
_
-F
_
_--follow=name --retry
_と同じ
_
-f
_、_--follow
_[_=
_ {name|descriptor}]
ファイルが大きくなるにつれて追加データを出力します。 _-f
_、_--follow
_、および_--follow=descriptor
_は同等です_
--retry
_
ファイルがアクセス可能になったとき、またはアクセスできなくなったときでも、ファイルを開こうと試み続ける名前でフォローする場合、つまり_--follow=name
_を使用する場合に便利です
このオプションはPOSIXで指定されていないため、どこにでも依存することはできません。いくつかの既知の実装:
代替はtail -F
コマンドです。
-F
オプションは--follow=name
と--retry
オプションを意味するため、ファイルが削除されて再度作成された場合でも、tailはファイルを監視しています。
代替を要求したので:
less
ユーティリティはtail -F
の代わりになる可能性があります。
次のように実行する必要があります:less --follow-name filename.log
を押して Shift + F。
これにより、tail -F
と同じ結果が得られます。
もう1つの方法は、watch
コマンドを使用することです。このコマンドでは、n秒ごと、この例では2秒ごとにコマンドを繰り返します。
watch -n2 "tail tool.log"
使用する Ctrl+C ログの表示が終了したら、コマンドを終了します。
lnav は、ファイル名に続くもう1つの素晴らしいツールです。
また、ディレクトリをポイントすることもでき、他のあらゆる種類の機能に加えて、そのディレクトリ内のすべてのファイルをテールします。
multitail
があなたの特定のケースを処理できるかどうかはわかりませんが、きっと対応できます。 multitailは、あなたがtail
にできることのほとんどすべてを行います。