2013年03月28日

ライバルに差をつけろ! - Tail パワー・ツールズ 2選(Xtail, MultiTail)

tail に関しては絶対負けたくないライバルがいる・・・そんな人はいないと思いますが、利用頻度の高いtailコマンドがもっと便利に使えると聞けば興味を持つ人は沢山いるんじゃないでしょうか。

istumbler

今日はtailライクな拡張コマンドを2つ紹介します。
 

複数のファイルを全部まとめて tail 出来る Xtail ユーティリティ


xtail の歴史は古く、tailライクな拡張ユーティリティとしてオライリー社発行の Unixパワーツールでも紹介されているプロダクトです。

Unixパワーツール
Unixパワーツール
posted with amazlet at 13.03.28
シェリー パワーズ ティム オライリー ジェリー ピーク マイク ルキダス
オライリージャパン
売り上げランキング: 555,783

xtailには次のような特徴があります。

  • ターゲットにディレクトリを指定可能
  • ディレクトリを指定した場合、途中ファイルが作成された場合にも自動でターゲットに追加する

早速使ってみましょうか。プロジェクト・ホームから最新のターボール(xtail-x.x.tar.gz)をダウンロードして下さい。

xtail | Unicom Systems Development

これを解凍・ビルドします。

$ tar xvzf xtail-2.1.tar.gz
$ cd xtail-2.1
$ ./configure

おっと、makeするその前にmanページのパスを変更しましょう。これをしないと”cannot create regular file `/usr/local/man/man1/xtail.1'”と怒られることになります。Makefileをエディタで開き、mandirの値を適切(/usr/share/man)な場所に変更します。

#mandir = ${prefix}/man
mandir = /usr/share/man

後は、make, make installすればOK。

$ make
$ sudo make install
/usr/bin/install -c xtail /usr/local/bin/xtail
/usr/bin/install -c -m 644 xtail.1 /usr/share/man/man1/xtail.1


基本的な使い方はtailと同じ。但し、ディレクトリを指定することも出来ます。

$ xtail /var/log/

*** /var/log//secure ***
sshd[31819]: Accepted password for root from ::ffff:192.168.x.x port 34352 ssh2

*** /var/log//messages ***
sshd(pam_unix)[31819]: session opened for user root by (uid=0)

*** /var/log//wtmp ***

*** /var/log//lastlog ***

*** /var/log//secure ***
sshd[31819]: Received disconnect from ::ffff:192.168.x.x: 11: disconnected by user

*** /var/log//messages ***
sshd(pam_unix)[31819]: session closed for user root

指定したディレクトリ配下で変更の出たファイルだけしか監視(tail)しないのでログの圧縮ファイルがあったりしても安心。

停止は Ctrl + \ (backslash) なので注意。 Ctrl + C は統計情報が出力されます。 

*** recently changed files ***
   1  28-Mar-13 20:15:23  /var/log//secure
   2  28-Mar-13 20:15:23  /var/log//messages
   3  28-Mar-13 20:15:23  /var/log//wtmp
   4  28-Mar-13 20:15:23  /var/log//lastlog
   5  28-Mar-13 20:15:01  /var/log//cron
   6  28-Mar-13 20:01:02  /var/log//maillog
   7  28-Mar-13 20:03:09  /var/log//rpmpkgs
   8  26-Mar-13 20:03:26  /var/log//prelink.log
currently watching:  48 files  1 dirs  0 unknown entrie


xtailを覚えておけば隙のないログ監視が出来そうですね。


複数ファイルの tail から Window レイアウト、カラリゼーション、トリガーまで出来る MultiTail


MultiTail はデスクトップでの利用を目的として作成された非常に高機能なtail拡張ユーティリティです。

Multitail

どれほどパワフルかは使ってみるのが一番。プロジェクト・ホームからtarボール(multitail-x.x.x.tgz)をダウンロードしてビルドすることも可能ですが、apt-get, yumパッケージ・マネージャーが使えるのであればもっと簡単にインストール出来ます。

$ sudo apt-get install multitail


まずは、基本的な使い方。この例ではauth.logにsyslogをマージ(-I)した結果をtailしています。

$ multitail /var/log/auth.log -I /var/log/syslog

mtail1

テキストをカラリゼーションしてくれるので見やすくなりますね(標準のカラースキーマ設定は/etc/multitail.confファイルを編集すれば変更可能)。


次の例では3つのログ・ファイルを1ウインドウ/2カラム(スプリット)で表示してくれます。

$ multitail -s 2 /var/log/auth.log /var/log/syslog /var/log/kern.log

mtail2

1ショット・3キル。楽で良いですねえ。


複数コマンドの実行結果をtailするのも簡単。

$ multitail -l "ping 8.8.8.8" -L "ping 8.8.4.4"

mtail3


出力内容を評価して、条件(ex)にマッチした場合には外部コマンドを実行することも出来ます。

$ multitail -ex FATAL "zenity --info --text 'FATAL FOUND'" -i /var/log/hoge.log

mtail4

この例ではFATALが含まれる行が出現した場合、zenityを使って簡易ダイアログを表示していますが、メールを送信したりアイデア次第で色々出来そうですね。


詳しい使い方は Examplesページ をどうぞ。


それでは、よりパワフルなtailライフを!


仕事の速い人が使っている 問題解決フレームワーク44
西村 克己
学研パブリッシング
売り上げランキング: 94,778

UNIXという考え方―その設計思想と哲学
Mike Gancarz
オーム社
売り上げランキング: 67,259

Posted by netbuffalo at 21:30│Comments(0)TrackBack(0) Linux | ユーティリティ


この記事へのトラックバックURL

コメントする

名前
 
  絵文字