uttsu.com > uttsuの日記 >

2003年2月9日

2005年 8月
2004年 5月
2003年 11月, 10月, 8月, 5月, 4月, 3月, 2月, 1月
2002年 12月, 11月, 10月, 9月, 8月, 5月, 3月, 2月, 1月
2001年 6月, 5月, 4月, 3月

2003年2月9日

# CFドメイン復活!?

長い間(1年間くらい?)ルートサーバーがダウンしていたCFドメイン(中央アフリカ共和国)が、いつの間にか復活していた。実はここのドメインを1つ持っているんだけど、取得したときはルートサーバーが長期間ダウンするなんて考えてもみなかったなぁ。

# サーバー監視スクリプト

ちょっと改良。proxyサーバーを経由していたのを、直接接続するようにしてみた。UNIXのPerlでも、気長に待てばSOCKET接続でタイムアウトしてくれるみたいだし。

#!/usr/local/bin/perl

# Usage: is_alive_http.pl server

use strict;

my $host = $ARGV[0] or die;
my $mail = '○○';   # 携帯のアドレス

main();

# ◆
sub main {
    if (!is_alive_http($host)) {
        print "$host is down\n";
        system("echo '$host is down' | mail $mail");
    }
}

# ◆
sub is_alive_http {
    my $target = shift;
    my @result;

    my $addr = (gethostbyname($target))[4];
    my $name = pack("S n a4 x8", 2, 80, $addr);
    socket(SOCKET, 2, 1, 0);
    connect(SOCKET, $name) or return 0;
    binmode(SOCKET);
    select(SOCKET); $| = 1; select(STDOUT);
    print SOCKET "OPTIONS * HTTP/1.0\n\n";
    @result = <SOCKET>;
    close(SOCKET);

    return (join('', @result) =~ /200 OK/ ? 1 : 0);
}

2005年 8月
2004年 5月
2003年 11月, 10月, 8月, 5月, 4月, 3月, 2月, 1月
2002年 12月, 11月, 10月, 9月, 8月, 5月, 3月, 2月, 1月
2001年 6月, 5月, 4月, 3月

Copyright (C) Takashi Utsunomiya. All Rights Reserved.