複数のファイルを tail -f でまとめて見れないかなーと思ってぐぐったらやっぱりあったので試してみた。
multitail というソフトウェアです。名前の通り複数のファイルをまとめて tail できます。
インストール
VPS上のCentOSにいれた。yum で入ります。
$ sudo yum install multitail
使ってみる
まずは基本的な使い方から、 apache の access_log と error_log を同時に表示してみる。
$ multitail /var/log/httpd/example.com-access_log /var/log/httpd/example.com-error_log
デフォルトでは引数に二つのファイルのパスを指定してやると上下分割でそれぞれのファイルの tail -f のように見れる。
複数ファイルを結合
-I オプションを使用すると複数のファイルを一つのウインドウに表示する事ができる。
$ multitail /var/log/httpd/example.com-access_log -I /var/log/httpd/example.com-error_log
正規表現でのフィルタリング
-e オプションを使用すると正規表現でフィルタリングできる。
$ multitail -e '(gif|jpg)' /var/log/httpd/example.com-access_log
コマンドの実行結果を表示
-l オプションを使用して他のコマンドの実行結果を multitail 上に表示できる。
$ multitail -l 'ping localhost' -l 'ping google.com'
操作方法
multitailにはいろいろなコマンドがありますが自分が良く使ってる分だけ書いていきます。
helpの表示
h を押しましょう。使用できるキーの一覧が表示されます。
各画面に応じて内容は変わります。
十字キーの挙動
スクロールできるところは大体上下キーでスクロールできますが、小ウインドウを表示且つスクロールできる分量じゃない時は小ウインドウが移動します。なんでや。
スクロール
スクロールするには b/f を押すだけなんですが、複数ウインドウを表示している場合は b を押してウインドウを選択してからでないとスクロールできないようです。
大文字で B と入力したら表示している複数のウインドウ全てをマージした状態でスクロールできます。
検索
/ を押したら検索ウインドウが出るので検索したい語句入れましょう。
ウインドウの追加
a を押すとウインドウを追加するか既存のウインドウにマージするか聞かれるので y/n で答える。
次にファイルを読み込むかコマンドの出力を表示するか選ぶ。
ファイルならその path, コマンドならコマンドを入力。
色を選択。
ぶっちゃけめんどいから僕は multitail コマンドを打ち直してる。
multitail はこんな感じに一々ダイアログが出るような挙動が多い。
ウインドウの削除
d 押すと一覧が出るので選択するだけ。
ウインドウの入れ替え
s 押すとウインドウの位置を入れ替えれる。
正規表現
正規表現でフィルタリングとかできる。
f ではフィルタリング、
e では指定した正規表現にマッチした場合にアラートを出せる。
コマンド実行時の -e オプションとは挙動が違うので注意。
まだ全機能見てるわけじゃないけど便利だ。