2つのログファイルのテーリング


14

パフォーマンス情報を含む多数のログファイルに出力するWebアプリケーションがあります。1つのログファイルはコード実行時間を出力し、別のログファイルはSQLタイミングを出力します。ロガーまたはログファイルを生成するコードを制御することはできませんが、ログを1か所に出力したいです。

現在、私はこのようなことをしています

tail -f sqlLogs.log | grep sql-time
tail -f perflogs.log | grep exec-time

これは、アプリケーションでSQLが実行されるたびに何かをコンソールに出力します。しかし、2つの別個のSSHセッションでコードを実行する必要があります。ただし、同じSSHセッションで両方のファイルを末尾に配置できるようにしたいのです。これは可能ですか?

回答:


20

はい、の出力行は、コマンドラインで与えられたすべてのファイルに追加します:

tail -F sqlLogs.log perflogs.log | egrep '(sql-time|exec-time)'

まあ、それは私の方法よりも簡単です!(笑、私のものではない答えを支持しただけです、私は好奇心のために私のものを残します)
ジェレミー

4

見ていMultiTailを。それはあなたの友達です。

あなたは複数のログテールを持つことができます

 -異なるウィンドウ、アルvimの「分割」
 -または、2つの(またはN)ストリームを1つのビューにマージし、
 -正規表現でスチームをフィルタリングできます。必要に応じて、
 -出力をファイルに「ティー」します

http://www.vanheusden.com/multitail/

Ubuntu 10.04の場合: sudo apt-get install multitail


2

screenはい、コマンドを使用して、1つの端末で2つのbashセッションを実行できます。

  • 実行screenして開始し、
  • 次にCtrl-aS(注:大文字のS)と入力して、画面を2つに分割します。
  • Ctrl-aその後Tab、2つのセッション間を移動します。
  • Ctrl-aその後c、その新しい領域でシェルが開始されます。

(これを使用する前にリカルドの答えを参照してください、彼ははるかに簡単です、それは似ているが異なる問題を持つ人々に役立つかもしれないので、これを残します)。


0

mkfifoを使用して、出力を1つのパイプに多重化できます。

fifoパイプを作成し、n個のファイルをパイプにテールし、パイプをcatします

 mkfifo pipeName
 tail file1 &
 tail file2 &
 ...
 tail fileN &
 cat pipeName

終了時

 rm pipeName

1
これは実際にはfifoを使用しません。たぶんあなたはテールコマンドになりたいでしょうtail fileN >> pipeName
ジェレミーカー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.