1

cron から実行してサイトを監視するスクリプトが必要です。必要な機能は、エラーが発生したときにメールを送信することです (タイムアウト、サービスが利用できない、見つからないなど)。だから私は私の解決策を共有したい;)

4

3 に答える 3

1

アップデート

スクリプトを更新しました。設定できるようになりました。

  • 警告を送信する電子メールの配列 (無料の SMS 警告には SMS メールをお勧めします)
  • 警告送信者のメール
  • 有効な http ステータス コードの配列
  • 最小ファイルサイズ (更新されたバージョンのチェックファイルサイズも)

ここで動作するコードを見つけることができます - http://pastebin.com/Cf9GyVJB

<?php
function checkURL($url) {

//array of emails to send warning
$adminEmails=array("admin1@t-zones.sk","admin2@vodafonemail.cz");
//email of sender
$senderEmail="monitoring@domain.tld";
//array of valid http codes
$validStatus=array(200,301,302);
//minimum filesize in bytes
$minFileSize=500;

if(!function_exists('curl_init')) die("Curl PHP package not installed!");

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response=curl_exec($ch);
$info=curl_getinfo($ch);
$statusCode=intval($info['http_code']);
$filesize=$info['size_download'];

if(!in_array($statusCode,$validStatus) || $filesize<$minFileSize) {
    $message = "Web ERROR ($url) - Status Code: $statusCode, Filesize: $filesize\r\n";
    foreach($adminEmails as $email) {
        mail($email, "Web Monitoring ERROR", $message, "From: $senderEmail\r\nReply-To: $senderEmail\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\n");
    }
}
}

checkURL("http://google.com/");
?>
于 2013-09-13T11:11:49.577 に答える