SEEDS Creator's Blog

読者です 読者をやめる 読者になる 読者になる

PHPから簡単なサーバー死活監視を行う

結構特殊なポートなどを簡易チェックしたい時に。

がっつりとしたチェックじゃなくていいけど ちょっとだけ死活監視したいなーなんて時、 PHPのfsockopen関数を使うと便利です。

portcheck.php [code] <?php

//const $server = "seeds-std.co.jp"; $port = "80"; $MAIL_TO = "error@example.com"; $MAIL_FROM = "check@example.com"; //const end

//check $socket = @fsockopen($server, $port, $errno, $errstr, 5); if ($socket === FALSE) { $mail_header = "From: $MAIL_FROM"; mail($MAIL_TO, 'server error', $errstr, $mail_header); }else{ exit; } //check end

exit; ?> [/code]

上記のconst部分のサーバーやポート番号を変更したらすかっと使えます。

$server ドメインやIPなど
$port 監視するポート
$MAIL_TO 失敗時のメール送信先
$MAIL_FROM 失敗時のメールの送信元メールアドレス。

mail関数を使ってるのでsendmailコマンドが使えない場合はメール送信できないので注意して下さい。

cronで回す

cronで回すときはphpのパスに注意しましょう。 だいたいは /usr/local/bin/php か /usr/bin/php のどちらかです。 30分ごとに監視するなら以下のような感じで。

[code] */30 * * * * root /usr/local/bin/php /path/to/portcheck.php [/code]