服务器定时施行规划任务,定时访问页面(windows/linux)
经过我们选的一种又简略一句话就解决了题目
explorer "//www.jb51.net?opt=make"
将上面的代码保留为dositemap.bat即可。然后增加到规划任务
一、windows规划任务
1、写一个PHP程序,命名为test.php,内容如下所示:
<? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n"); fclose($fp); ?>
程序大胆地写,什么include\require只管用,都没题目
2、创建Bat文件,命名为test.bat,内容如下所示:
D:\php\php.exe -q D:\website\test.php
本人写的bat文件,定时打开页面,并关闭ie阅读器
explorer.exe open=//www.jb51.net Ping -n 80 127.1>nul Taskkill /f /im "iexplore.exe"
3、创立WINDOWS规划任务:
开端–>控制面板–>任务规划–>增加任务规划
阅读文件夹选中上面的bat文件
设置工夫和密码(登陆WINDOWS的)
保留即可了。
4、over! 可以右键规划任务点“运转”试试
二、Linux 的脚本实现
一、在Crontab中运用PHP施行脚本
就像在Crontab中调用普通的shell脚本同样(具体Crontab用法),运用PHP程序来调用PHP脚本。
每一小时施行myscript.php如下:
**# crontab -e** 00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php为PHP程序的途径。
二、在Crontab中运用URL施行脚本
要是你的PHP脚本可以通过URL触发,你可以运用lynx或curl或wget来配置你的Crontab。
下面的例子是运用Lynx文本阅读器访问URL来每小时施行PHP脚本。Lynx文本阅读器默许运用对话方式打开URL。但是,像下面的,我们在lynx下令行中运用-dump选项来把URL的输出转换来规范输出。
00 * * * * lynx -dump http://www.centos.bz/myscript.php
下面的例子是运用CURL访问URL来每5分施行PHP脚本。Curl默许在规范输出显示输出。运用”curl -o”选项,你也可以把脚本的输出转储来临时文件。
*/5 * * * * /usr/bin/curl -o temp.txt http://www.centos.bz/myscript.php
下面的例子是运用WGET访问URL来每10分施行PHP脚本。-q选项表示平静模式。”-O temp.txt”表示输出会发送来临时文件。
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.centos.bz/myscript.php
三、PHP实现定时施行规划任务
运用php让阅读器刷新需要解决几个题目
1.PHP脚本施行工夫限定,默许的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time工夫(不举荐)
2.要是客户端阅读器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即便关闭页面仍然正常施行
3.要是程序不断施行很有可能会耗损大量的资源,解决办法运用sleep运用程序休眠一会,然后在施行
PHP定时施行的代码:
<?php ignore_user_abort();//关掉阅读器,PHP脚本也可以继续施行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无穷制的施行下去 $interval=5;// 每隔5s运转 //要领1--死轮回 do{ echo '测试'.time().'<br/>'; sleep($interval);// 期待5s }while(true); //要领2---sleep 定时施行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '测试'.time().'<br/>'; sleep($interval);// 期待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序施行工夫
测试的时候发明这个效率并不是很高
总结:
倡议对于定时施行任务的工作还是交给shell来做吧,比较那才是王道。