在Debian服务器上使用PHP ping网站的Crontab

时间:2013-12-12 16:17:54

标签: php cron debian crontab ping

我制作了ping网站的PHP脚本,如果我有答案我什么也不做,否则我发送电子邮件提醒。 这是我的代码:

function urlExists($url=NULL)  
{  
    if($url == NULL) return false;  
    $ch = curl_init($url);  
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);  
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    $data = curl_exec($ch);  
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
    curl_close($ch);  
    if($httpcode>=200 && $httpcode<300){  
        return true;  
    } else {  
        return false;  
    }  
}
$url = 'http://www.website.com/';



if(urlExists($url) == true)
{
   exit('Website OK'."\n");
} else {

    $headers ='From: "Sembot"<noreply@website.com>'."\n"; 
    $headers .='Reply-To: noreply@website.com'."\n"; 
    $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
    $headers .='Content-Transfer-Encoding: 8bit'; 

    foreach ($destinataire as $dest) {
        echo 'Website DOWN'."\n";
        if(mail($dest, 'Sembot - Website DOWN', 'Website DOWN', $headers)) { echo 'email...'; }
    }

}

当我在浏览器或控制台上执行此文件时,消息为“网站正常”,因为网站现在正常。但是当我创建一个每5分钟执行一次脚本的crontab时,我每隔5分钟收到一封电子邮件,但网站没有死...你知道为什么吗?

2 个答案:

答案 0 :(得分:0)

我已经使用这个python脚本一年了。运行正常,您需要了解的所有内容才能在自述文件中运行 https://github.com/bloodwithmilk25/ping-script

答案 1 :(得分:-2)

我看到你的200旁边有一个&gt; =。每次都会这样,因为你的数量少于300且大于或等于200.

而不是:

if($httpcode>=200 && $httpcode<300){  
    return true;  
} else {  
    return false;  
}  

试试这个:

if($httpcode > 200 && $httpcode < 300){  
    return true;  
} else {  
    return false;  
}  

我只是删除了平等。