linux – ファイル名の後に続く “tail -f” に代わるもの

linux logging tail

時限回転ファイルロガーを使って、いくつかのログを生成しています。これは tool.log というファイルにログを記録し、真夜中にこれを tool.log.<date> に移動して新しい tool.log を開始します

ログを監視するためにマシン上でtail -f tool.logを実行しているのですが、深夜にtool.logtool.log.<date>にリネームすると、tailはリネームされたファイルを監視し続けています

私が期待しているのは、tailと似たようなツールで、inodeを追うのではなく、tool.logという名前のファイルを監視し続けることです

このようなものは存在するのでしょうか?ないのであれば、そのためにPythonで自分で書けばいいのですが

  60  Hugh  2016-03-29


ベストアンサー

tailのいくつかの実装にはこのオプションがあります

-F --follow=name --retryと同じ

-f, --follow[={name|descriptor}]は、ファイルの成長に応じて付加されたデータを出力します; -f, --follow, --follow=descriptorは等価です

--retry は、ファイルにアクセスできなくなっても、ファイルを開こうとし続ける

このオプションは POSIX で指定されていないので、どこでもこれに依存することはできません。いくつかの既知の実装

  • GNU – は上記のように-Fを持っています
  • Mac OS X, FreeBSD, NetBSD – 同じ効果を持つ-Fオプションがあります
  • OpenBSD-fで十分です(ファイルが入れ替わった場合(つまりinode番号が変わった場合)、tailはファイルを開き直して続行します)
  • ソラリス – これに相当するものはありません
  • Busybox-Fは最近のバージョンでは利用可能ですが、ENABLE_FEATURE_FANCY_TAILでコンパイルする必要があります(デフォルトではコンパイルされていません)

92  Toby Speight  2016-03-29


代替案は tail -F コマンドです

-Fオプションは、--follow=name--retryオプションとの間に--follow=nameがあることを意味しているので、ファイルが削除されて再度作成された場合でも、tailはあなたのファイルを監視しています

55  Oleg Bolden  2016-03-29


あなたが代替案を求めたから:

lessユーティリティは、tail -Fの代替品になるかもしれません

以下のように実行する必要があります。less --follow-name filename.logを実行し、Shift + Fを押します

これでtail -Fと同じ結果が得られます

5  VL-80  2016-05-11


別の方法としては、watchコマンドを使用することもできます。この例では2秒ごとに、n秒ごとにコマンドを繰り返します

watch -n2 "tail tool.log"

ログの閲覧が終わったらコマンドを終了するには、Ctrl+Cを使用してください

4  Arronical  2016-03-31


lnavは、ファイル名に続くもう一つの素晴らしいツールです

また、ディレクトリを指定することができ、そのディレクトリ内のすべてのファイルを尾行し、他のすべての種類のきちんとした機能に加えます

3  Wayne Werner  2016-03-31


multitailはmultitailがあなたの特定のケースを処理するかどうかはわかりませんが、きっと処理してくれるでしょう

MultiTail - Wikipedia

1  Andy Lester  2016-03-31


タイトルとURLをコピーしました