您的位置:首页 > 运维架构 > Linux

如何使用Linux的Crontab执行PHP脚本

2015-10-16 00:00 831 查看
摘要: 用Linux的Crontab执行PHP脚本

近期写了一个PHP脚本,需要每天执行,于是就想到了计划任务,这个功能因为会比较常用,所以在此记下一笔。

一、首先写好你的PHP脚本,比如test.php,我的PHP脚本是需要网址访问的,放在网站的根目录,(如:http://www.aaa.com/test.php),当然你也可以是其它路径,此处路径写正确即可。

二、找到你的crontab的文件位置,并且在其中调用你的PHP脚本

1、crontab的文件位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失;

2、打开root文件,添加调用PHP脚本命令

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


//第5分钟执行一次test.php

【备注:添加方式有多种,此处可自行选择,以下列出几种供大家参考:】

(1):在Crontab中使用PHP执行脚本

00 * * * * /usr/local/bin/php /home/john/test2.php //每小时执行一次test2.php

/usr/local/bin/php为PHP程序的路径 /home/john/test2.php为执行脚本的绝对路径

(2):在Crontab中使用URL执行脚本

如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。

方一:00 * * * * lynx -dump https://www.aaa.com/test.php

//每小时执行一次test.php

【Lynx文本浏览器默认使用对话方式打开URL,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。】

方二:*/5 * * * * /usr/bin/curl -o temp.txt https://www.aaa.com/test.php
//使用CURL访问URL来每5分执行一次test.php
【Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。】

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


//使用WGET访问URL来每10分执行PHP脚本

【-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件】

crontab用法

crontab的格式如下面:

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行程式的路径。

当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推

当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

三、检查是否执行脚本,如不成功,可到日志查看

默认情况下,crontab中执行的日志写在/var/log下,如:/var/log/cron /var/log/cron.1 /var/log/cron.2

如crontab 没有成功,检测crontab 服务是否启动,
/etc/init.d/crond status //查看状态

/etc/init.d/crond restart //重启cron

cron 是系统守护进程,位置:
/etc/init.d/crond
参数:
start
stop
restart
reload
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息