結構特殊なポートなどを簡易チェックしたい時に。
がっつりとしたチェックじゃなくていいけど ちょっとだけ死活監視したいなーなんて時、 PHPのfsockopen関数を使うと便利です。
//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]