PHPとcronでサーバの障害検知メール

自宅サーバがたまに落ちて、しばらく気づかなかったりする。

障害検知メールを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);
?>

この記事を書いた人 Wrote this article

tonogata
TOP