一个检测页面中关键词的脚本,比如检测vps是否有货,然后通过pushbullet推送到设备上。
之前也写过类似的脚本,不过那个对消息推送的时间没有做设置,也就是循环一次 如果匹配到关键字就推送消息,这样的话如果推送app有条数限制的话,可能很快用完。
<?php define("Token", "********************************"); //pushbullet Tokens $extime = 0; $url = "https://xxxx.com/xxxx.xxx"; //地址 $curl_sleep = 10; //curl多久执行一次 $delay = 3600; //多久发一次消息 $findstr = "xxxxxxx"; //网页中的关键词 $i = 1; function curl_get($url) { $UGA="AdsBot-Google v3 ( http://www.google.com/adsbot.html)"; $ch = curl_init(); $headers = array(); $headers[] = "Accept: */*"; $headers[] = "Cache-Control: max-age=0"; $headers[] = "Connection: keep-alive"; $headers[] = "Keep-Alive: 300"; $headers[] = "Cookie: caches="; $headers[] = "Accept-Charset: utf-8;ISO-8859-1;iso-8859-2;q=0.7,*;q=0.7"; $headers[] = "Accept-Language: en-us,en;q=0.5"; $headers[] = "Pragma: "; // browsers keep this blank. curl_setopt($ch, CURLOPT_USERAGENT, $UGA); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,40); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $datas=curl_exec($ch); curl_close($ch); return $datas; } function pushmsg($msg) { $curl = curl_init('https://api.pushbullet.com/v2/pushes'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_HTTPHEADER, ['Access-Token: '.Token]); curl_setopt($curl, CURLOPT_POSTFIELDS, ["type" => "link", "title" => "-=-提醒-=-", "body" => "xeovo-azure上货!", "url" => $msg]); $response = curl_exec($curl); global $extime; $extime = date("YmdHis"); echo "send a message:".$extime."...\n"; // print_r($response); } while(TRUE) { $stime = microtime(true); $xxxx = curl_get($url); $etime = microtime(true); $total = $etime - $stime; echo "excute time:".$total."...num=".$i.".----extime=".$extime."\n"; if(stristr($xxxx,$findstr)) { $tmptme = date("YmdHis") - $extime; echo "tmptime=".$tmptme."\n"; if($extime ==0 || $tmptme > $delay ) { pushmsg($url); } } $i++; sleep($curl_sleep); $stime = 0; } ?>
保存为/xxxx/xxxx.php,第一次最好用screen -S xxxx
然后,php /xxxx/xxxx.php > /xxxx/log.txt &
之后,在rc.local 写入 php /xxxx/xxxx.php > /xxxx/log.txt &
下次重启即可自动启动
以前写的检测Kimsufi是否有货的脚本