Multitailって?
ログを監視しておく用途などで、$ tail -F
や$ less +F
など使っている方も多いかと思います。
複数のログファイルを追いたいけどウインドウたくさん開くのもめんどい、というときに便利なのがこのMultiTail。
Macでは日本語ファイルを読み込むと文字化けする
Homebrewにもあるので、普通は$ brew install multitail
すれば良いのですが、そのままでは日本語のファイルを読み込むと意図通りの表示してくれません。
そこで、ソースからビルドしてみましょう。
※ 数ヶ月前にオリジナル版の開発が終わってしまったようなので、他所からソースは拝借しました。
Makefileの修正例
まずは準備から。
pkg-configやncursesが入っていないときはまずインストール。
$ brew install pkg-config ncurses
最新版のソースを頂いてきます。
$ curl -O https://distfiles.macports.org/multitail/multitail-6.5.0.tgz
展開して移動します。
$ tar xvfz multitail-6.5.0.tgz
$ cd multitail-6.5.0
お好きなエディタでMakefileを修正します。
$vim Makefile
34行目あたりに以下を追記しましょう。
CFLAGS+=-I/usr/local/Cellar/ncurses/6.2/include
LDFLAGS+=-L/usr/local/Cellar/ncurses/6.2/lib -lpanelw -lncursesw
CPPFLAGS+=-DUTF8_SUPPORT
バージョンはご自身の環境に合わせてください。(パスはHomebrew版のncursesを想定してます。)
※ vimをお使いの場合は、i
キーで挿入モードになり編集でき、終わったらesc
でモードを抜け、:wq
を打ってreturnし、上書き保存してvimを抜けましょう。
ではビルドしてみます。
$ make install
どうでしょうか、正常に終了したでしょうか。
もしここでwaddnwstr
についてerrorがでてしまった場合、
$ vim /usr/local/Cellar/ncurses/6.2/include/ncurses.h
205: #define NCURSES_WIDECHAR 0
を1に変えて上書き保存。
※ コンパイル後に戻しておく。
$ make clean
$ make install
で再度試してみてください。
これで、日本語対応のMultiTailが使えるようになるかと思います。
MultiTailの使い方はたくさん記事が出ていますので割愛します。
自分はMac miniをサーバー代わりに使っていろいろログを書き出しているので、Multitailは重宝しています。
削除方法
いらなくなったときは通常の手順で削除できます。
その時のためにmultitail-6.5.0
のディレクトリは残しておくと良いかと。
$ cd multitail-6.5.0
$ make uninstall
$ make clean