ツー

日常の記録

リモートにある複数のログファイルをtailする

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

一画面に全部のサーバのログがマージされて表示されるので便利。