Site sahipleri için en önemli konulardan birisi de bir sorun olduğu zaman siteye anında müdahale edebilmektir.

bu betik verilen domain’i kontrol eder ,eğer site offline ise belirtilen adrese mail atar ve bununla da kalmayıp whm’nize erişip restart atar.

Konunun yerine karar veremedim =)


error_reporting(0);

$url = "https://kontrolsitesi.com"; // Kontrol edilecek Domain Adresi
$mailadresi = "bashque@hotmail.com"; // Eğer siteye ulaşılmıyor mail atılacak mail adresi
$timeout = 12; // Siteye kaç saniye bağlanmaya çalışsın. Bu sürenin üzerinde siteye ulaşamadığını kabul eder ve mail atar

function restartat(){

$whmusername = ""; // Whm username
$whmpassword = ""; // Whm şifreniz
$whmipadresiyadadomain = ""; // Whm ip adresi yada domain adresi

$sorgu = $whmipadresiyadadomain.":2087/xml-api/reboot";

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
$istektebulun[0] = "Authorization: Basic " . base64_encode($whmusername.":".$whmpassword) . "\n\r";
curl_setopt($curl, CURLOPT_HTTPHEADER, $istektebulun);
curl_setopt($curl, CURLOPT_URL, $sorgu);
$sonuc = curl_exec($curl);
if ($sonuc == false) {
error_log("curl_exec threw error \"" . curl_error($curl) . "\" for $sorgu");
}
curl_close($curl);
print $sonuc;
}

function maila($adres,$konu,$mesaj){
mail("$adres","$konu","$mesaj");
}

if($_GET["restart"] == "restart"){
echo restartat();
die();
}

$ch = curl_init();
curl_setopt($ch , CURLOPT_URL, "$url");
curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , FALSE);
curl_setopt($ch , CURLOPT_RETURNTRANSFER , TRUE);
curl_setopt($ch , CURLOPT_FOLLOWLOCATION , TRUE);
curl_setopt($ch , CURLOPT_REFERER , 'google.com');
curl_setopt($ch , CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows; U; Windows NT 6.1; tr; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
$siteicerigi = curl_exec($ch);
$sitedurumu = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if($sitedurumu =="200"){

if(!stristr($siteicerigi,'name="description"')){ // 200 gelse bile descriptin diye bir yazı geçmiyorsa içinde yinede mail atar kendinize göre düzenleyebilirsiniz.

restartat();
sleep(180); // 180 saniye sonra mail atar. Mail atmadan önce server a restart atmaya çalışır. Tabiki ulaşabilirse.

maila($mailadresi,"$url Açılmıyor Olabilir (Restart Atıldı)","Site açılıyor ama farklı bir sorun var bakılması gerek Hata KODU : $sitedurumu ");

}

}else{

if($sitedurumu=="500"){

restartat();
sleep(180);

maila($mailadresi,"$url Açılmıyor Olabilir (Restart Atıldı)","Site açılıyor ama farklı bir sorun var bakılması gerek Hata KODU : $sitedurumu ");

}else{

restartat();
sleep(180);

maila($mailadresi,"$url Açılmıyor Olabilir (Restart Atıldı)","Site açılıyor ama farklı bir sorun var bakılması gerek Hata KODU : $sitedurumu ");

}
}