自宅サーバがたまに落ちて、しばらく気づかなかったりする。
障害検知メールをphpで書いて、運用することにしました。
メインでwebサーバにしている自宅サーバ以外に、cronが使えるレンタル・サーバを持っているので、そっちにcron設定。
ちなみに、レンタルサーバはinetdを使ってます。低価格のレン鯖だと、さくらとかロリポップとか名前が挙がりますが、個人的にはココが無敵。
月額315円で
言語はPython,Perl,PHP,Ruby,C言語、DBはMySQL,PostgreSQL,Berkeley DB,gdbm、更にcron,telnet,sshが使える。
ちなみに、運営もちゃんとした法人なのでしっかりしている。
<?php /** * webサーバが落ちたらメールする * * cronに毎時00分でチェック設定 * [crontab -e] * 00 * * * * [/usr/local/bin/php(phpのパス)] [check.php(このスクリプトのパス)] */ // 対象サーバ $addr = "www.○○.com"; $port = "80"; // メール宛先 $to = "○○○@docomo.ne.jp"; $subject = "[server-status]{$addr}:{$port} is dead ?"; $body = "this is [" . __FILE__ . "].\n[{$addr}:{$port}] is dead.\n"; // 実行 $fp = fsockopen($addr, $port, $errno, $errstr, 20); if (!$fp){ $body .= "date:" . date("Y/m/d H:i:s") . "\nerrno:{$errno}\nerrstr:{$errstr}\n"; mb_send_mail($to,$subject,$body); print $body; } else { // success } fclose($fp); ?>