multitailという便利なものがあるので使いつつ、wrapperを書く感じでいいのではないか。
INSTALL
リモートのログを見に行くのに鍵の指定がめんどくさいので、keychainに任せるため一緒にインストール。
sudo apt-get install multitail keychain
SCRIPT
サーバのIPとかユーザ名を適当に修正し、mtail
とか適当な名前でPATHが通ってるところに置く。
#!/usr/bin/perl use strict; use warnings; my $USER = 'user'; my $HOST = `hostname`; chomp $HOST; my $keychain_conf = `cat $ENV{HOME}/.keychain/${HOST}-sh`; my($sock) = $keychain_conf =~ /SSH_AUTH_SOCK=(.*?);/; my($pid) = $keychain_conf =~ /SSH_AGENT_PID=(\d+);/; $ENV{SSH_AUTH_SOCK} = $sock; $ENV{SSH_AGENT_PID} = $pid; my @ips = ( map { qq|-ci $_->[1] -L 'ssh -o StrictHostKeyChecking=no $USER\@$_->[0] "tail -f /var/log/moge.log"'| } ['1.1.1.1', 'yellow'], ['2.2.2.2', 'white'], ['3.3.3.3', 'green'], ['4.4.4.4', 'cyan'], ['5.5.5.5', 'red'], ); system join ' ' => 'multitail', @ips;
自動で色をいい感じにしてくれよという感じはあるけれど、依存を増やしてめんどくさくのもアレなのでハードコードのままでよしとする。
RUN
. ~/.keychain/`hostname`-sh; mtail
一画面に全部のサーバのログがマージされて表示されるので便利。