ライブテール、他のフォルダのファイルの埋め込みと除外

ライブテール、他のフォルダのファイルの埋め込みと除外

tail特定のファイルが含まれているか除外された3つの異なるフォルダに住みたいです。
フォルダ1:

  • パス:/var/www/app/var/log/
  • 除外:file1.logとfile2.log

フォルダ2:

  • パス:/var/log/web/log/
  • 内容: error.log

フォルダ3:

  • パス:/var/log/service/log/
  • 含まれる内容:app1.error.logとapp2.error.log

1つのコマンドで3つの異なるフォルダにある特定のファイルをどのように含めて除外できますかtail

tail -f ???

これまで試してみました

tail -f /var/www/app/var/log/!(file1,file2).log /var/log/web/log/error.log /var/log/service/log/{app1,app2}.log 

しかし、これはうまくいきません。find+を使うべきだと思います。tail

答え1

使用私の答え到着SUに関するあなたの質問も変わりません。find探しているファイルを見つけるには、3つのコマンドを作成します。それから:

{ find … -print0 ; find … -print0 ; find … -print0 ; } | xargs -r -0 tail -F

メモ:

  • -Fこのため:tail -fログファイルを循環する方法は?
  • findコマンドは一度だけ実行されます。一致する名前の新しいファイルが表示されますが、その時点で存在しない場合、そのtailファイルは無視されます。つまり、tail起動すると、すべてのパラメータが固定され、生成されるファイルはそのパラメータに含まれません。
  • 結果フォームがfind次を超える場合限界その後、xarg複数が実行されますtail(ただし、デフォルトでは並列には実行されません)。もちろん、あなたはこれをしたくありません。find適切な数のファイルを見つけて制限を超えないようにしてください。
  • find -print0そしてxargs -r -0持ち運びが簡単ではありません。あなたがタグ付けしました;彼らはUbuntuで働いています。

答え2

必要なすべてのファイルをテーリングします...各テールをファイルに出力します...新しいファイルをテーリングします。

tail -f /var/log/large.log > ~/full.log && tail -f /var/log/medium.log > ~/full.log && tail -f ~/full.log

コマンドで実行できますが、最初は少し奇妙に見えますが、必要に応じて別のttyで実行してから見やすくなるようにログ全体を追跡できます。

関連情報