ボーナスも出たことなのでCanon MP600とエロゲーを買いに秋葉原に行く。ちょうどTRADEでは鬼特価中だったので、ちょっと高かったものを中心にをまとめて買う。
・EVE ~burst error~
・蒼色輪廻
・ミステリート~不可逆世界の探偵紳士~ 特別ぱっく版
・SEXFRIEND ~セックスフレンド~ DVD版
プリンターはサクセスで20270円とかなり安い上に、送料無料だったので即決。今日あたり届くことになってるのですが、まだ届いてない...
iplogをリアルタイムで監視するときに私はperlで以下の簡単なプログラム?を作ってterminalで実行しています。
#!/usr/bin/perl -w
system "who > /home/lain/pps/DATA2"; ← ここから
system "lastlog >> /home/lain/pps/DATA2";
use File::Compare;
LOOP:if (compare("DATA1","DATA2") != 0) {
system "clear";
print "\nDATA Fileの確認をお願いします(何かキーを押して下さい)\n\n";
system "diff -s DATA1 DATA2 \n\n";
chomp($key = <STDIN>);
if($key eq '*') {
last;
}
print "上書きしても良いですか?>Y or N\n";
chomp($moji = <STDIN>);
if (($moji eq 'Y') || ($moji eq 'y')) {
system "cat /home/lain/pps/DATA2 > /home/lain/pps/DATA1";
} elsif (($moji eq 'N') || ($moji eq 'n')) {
exit 0;
} else {
goto LOOP;
}
} ←ここまで
LABEL:system 'clear';
chomp($awaseru = `cat /var/log/iplog | tail -n 8 | grep unreachable | sed -e 's/.*is //' -e 's/ t.*//'`) ;
if ( $awaseru eq 'unreachable') { ←条件
print "【警告】\n";
print `cat /var/log/iplog | tail -n 8 | grep unreachable\n`;
print "続行しますか? > ";
chomp($moji = <STDIN>);
if (($moji eq 'Y') || ($moji eq 'y')) {
$i=0;
while(1) {
system 'clear';
system 'cat /var/log/iplog | tail -n 8';
chomp($du = `cat /var/log/iplog | tail -n 1 | grep unreachable | sed -e 's/.*is //' -e 's/ t.*//'`);
if ( $du eq 'unreachable' ) {
print "【警告】\n";
print `cat /var/log/iplog | tail -n 1`;
}
print"これまでに$i回の更新\n";
print `date`;
$i++;
sleep 60;
}
} elsif (($moji eq 'N') || ($moji eq 'n')) {
exit 0;
} else {
goto LABEL;
}
}
$j=0;
while(1) {
system 'clear';
system 'cat /var/log/iplog | tail -n 8';
chomp($dainyu2a = `cat /var/log/iplog | tail -n 1 | grep unreachable | sed -e 's/.*is //' -e 's/ t.*//'`) ;
if ( $dainyu2a eq 'unreachable' ) {
print "【警告】\n";
print `cat /var/log/iplog | tail -n 1`;
}
print"これまでに$j回の更新\n";
print `date`;
$j++;
sleep 60;
}
内容自体をもっと簡単にまとめることができるのかと思いますが、スキルのない私の腕ではこれが限界。今後、少しずつ直していく予定。
まず最初に、「ここから」から「ここまで」については、iplogとは全く関係ないのですが、とりあえず、セキュリティー確保のため、who、lastlogを前回logoutしたときの状態から比較する仕組みにしています。iplogのリアルタイム監視のみに使用する場合は、当該部分を削除して下さい。
who、lastlogを使用する場合、適当なファイル名及びフォルダ(今回はDATA1)を作成し、DATA1とDATA2の内容について齟齬があれば、警告があり、DATA1に対してDATA2の内容を上書きしても良いか確認があります。
また、iplogでの警告については、「条件」のところを適当に直して頂ければよろしいかと。
私自身、perlは初心者ですので内容を読んで頂ければ簡単に理解できるかと思います。ただし、稚拙な内容については勘弁して下さい。
例として、条件にあったものが次のとおり表示されることになります。
Dec 1 02:49:09 ICMP: (from XXX.XXX.XXX.94) XXXXX.XXXX.ST: port is unreachable to 192.XXX.XXX.XXX (tcp: dest port 80, source port XXXXX)
ところで、libpcapをupdateしたら、iplogが使えなくなってしまった...困った(笑)