tail -f
とかのコマンドでログ等のアウトプットを
プロンプト上に表示させ続ける事が出来ますが、
MultiTail
というコマンドを使うと
複数のログを一つのコマンドで一気に表示し追い続ける事が出来ます。
Multitail
インストール
インストールは
Macなら、
$ brew install multitail
Linuxとかなら
$ yum install multitail
または
$ apt-get install multitail
等。
Cygwinなら
$ apt-cyg install multitail
もしくは自分で Download してコンパイル。
主な起動方法
インストールするとmultitail
というコマンドが使えるようになります。
基本的な使い方は
$ multitail a.txt b.txt
と、複数見たいファイルを与えます。
与えたファイルをtail -f
したような状態で縦に分割して表示します。
横並びにしたい時は
$ multitail -s 2 a.txt b.txt
とします。-s
に与える数は与えるファイルの数以下で。
例えば
$ multitail -s 3 a.txt b.txt c.txt
とすれば3つ横並びになり、
$ multitail -s 2 a.txt b.txt c.txt
とすると横に2分割され、右側にb.txtとc.txtが縦に分割されて表示されます。 ファイル数より大きな数を指定すると指定なし同様全部縦に分割されてしまいます。
2つのファイルをマージして表示したい場合には-I
を付けて続けます。
$ multitail a.txt -I b.txt
これで、a.txtとb.txtの内容が一緒になって出力されます。
-l
を使うとコマンドの表示を渡すことも出来ます。
$ multitail -l "ping localhost" -l "ping 8.8.8.8"
起動中のコマンド
q
/x
q
またはx
を押すと終了します。
色々起動中に行える事はありますが取り敢えず最低限これだけ覚えておけば、と。
Enter
、及び数字
Enter
を押すと全ての表示中のウィンドウに時刻を含む
ラインを入れる事が出来ます。
0
や1
などウィンドウ番号を押すとそのウィンドウだけにラインを入れることが出来ます。
v
縦分割、横分割の切り替えはv
を押すと出来ます。
縦から横にする時には分割する数を聞かれるのでファイル数以下の数字を入力。
/
/
を押すと検索が出来、表示中の中から該当する行を拾ってこれます。
n
n
を押してウィンドウを選ぶとそのウィンドウをクリアすることが出来ます。
b
b
を押してウィンドウを選ぶとそのウィンドウの遡って見ることが出来ます。
ただし、デフォルトは100行しか保存しないので、
多く保存したい場合は
$ multitail -m 1000 a.txt b.txt
または
$ multitail -M 1000 a.txt b.txt
と-m
または-M
で行数を指定。
-m
はその直後のファイルだけに適用され、
-M
は全てのファイルに適用されます。
他にも沢山ありますがこの位知っておけば十分かな、と。
まとめ
multitailはかなり高機能で起動中にも色々と操作することが出来ますが、 取り敢えず複数のファイルを一気に表示する、 というところだけ覚えておけばかなり便利に使えると思います。
コマンドを見る-l
も意外と使えます。
GNU screenやtmuxで画面分割しておいてそれぞれでtail
するのも良いですが、
見るものが決まっていれば一発コマンドで複数立ち上げられるのは結構便利です。
-l
に対してssh
とコマンドを組み合わせて使えば
複数のサーバーのログを一箇所から一つのコマンドで同時に監視、
なんてことも出来たりします。
$ multitail -l 'ssh server1 "tail -f ~/log"' -l 'ssh server2 "tail -f ~/log"'
みたいな。