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

がっつりとしたチェックじゃなくていいけど
ちょっとだけ死活監視したいなーなんて時、
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]