之前写过一个PHP脚本,然后用监控宝每小时访问这个脚本(因为监控宝HTTP监控最大间隔时间是1小时),脚本里判断时间,如果当前时间是晚上12点,就跳转到WHMCS的crons/cron.php页面,由于监控宝会有多台服务器同时发出请求,为了避免任务被执行多次,脚本生成一个日志文件作为判断,确保每天只执行一次。
<?php $url = 'http://www.domain.com/crons/cron.php'; if(date('H', time()) <> '00') exit; $log = ''; if(is_file('my-cron.log')) { $fp = fopen('my-cron.log', 'r'); while(! feof($fp)) { $log = fgets($fp); } fclose($fp); } if( $log == date('Y-m-d', time()) ) exit; $logfile = fopen('my-cron.log', 'w'); $txt = date('Y-m-d', time()); fwrite($logfile, $txt); fclose($logfile); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); ?>
但现在,不用这么麻烦了,因为监控宝有一个更好的功能:定时监控。
创建监控项目的时候,最下方有个定时监控,点击进去,我们可以看到可以设置监控周期为每天、每周、每月、每年,并可以设置监控触发时间。