windows和linux下定时执行php

在昨天写到用xml同步中用到了定时执行php,今天就介绍一下php在windows和linux两个环境下如何实现定时执行的。

在windows下主要用到bat批处理文件,首先新建一个test.php文件

<?
$fp = fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n");
fclose($fp);
?>

然后用记事本新建一个test.txt,在里面填上:

D:\php\php.exe -q D:\website\test.php

修改成自己相对应的目录,保存为test.bat

最后是建立WINDOWS计划任务:

开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat文件,设置时间和密码(登陆WINDOWS的),保存即可了。

注意:定时任务配置需要执行的“操作”,就是选择所写的程序或是BAT文件,这里很重要的配置是选择BAT文件后,在“起始于(可选)”这里一定要填写相应执行程序或是BAT文件的所在目录,要不然是执行不成功的。
可以右键计划任务点“运行”,这样就可以了


在linux环境中主要用到的是Crontab执行php脚本

例如每一小时执行test.php如下:

# crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php

如果想在Crontab中使用URL执行脚本可以:
如果PHP脚本可以通过URL触发,可以使用lynx或curl或wget来配置你的Crontab。
Lynx例子:使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

00 * * * * lynx -dump https://www.yiecho.com/test.php

CURL例子:使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。

*/5 * * * * /usr/bin/curl -o temp.txt https://www.yiecho.com/test.php

下WGET例子:使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

*/10 * * * * /usr/bin/wget -q -O temp.txt https://www.yiecho.com/test.php

除了以上两种方法,还可以使用ignore_user_abort函数但是这种方法不太可靠,不稳定,而且占用资源。

windows和linux下定时执行php:等您坐沙发呢!

发表评论

表情
还能输入210个字