linux crontab定时执行php脚本怎么实现?

发布时间:2019-10-23编辑:脚本学堂
如何在linux下使用crontab定时执行php脚本呢,比如定时更新网站首页,定时发布文章等,在linux中使用lynx或curl或wget来配置Crontab计划任务,即可实现该功能。

定时执行php执行,可以使用ignore_user_abort函数或在页面放置js让用户帮助实现。

这里介绍下借助linux的crontab工具触发php执行任务的方法。

crontab实现php定时执行的二种方法。

一、在crontab中使用php执行脚本

就像在Crontab中调用普通的shell/ target=_blank class=infotextkey>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计划任务。

例1,使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。

但是,在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。
 

00 * * * * lynx -dump http://www.jb200.com/index.php

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

*/5 * * * * /usr/bin/curl -o temp.txt http://www.jbxue.net/index.php

例3,使用wget访问url来每10分执行php脚本。
-q选项表示安静模式。”-o temp.txt”表示输出会发送到临时文件。
 

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.jb200.com/index.php

注意,如果是创建在/etc/crontab文件中,记得添加执行此脚本的用户,比如root。

另外,要是用纯php代码来实现curl抓取网页的话,这里推荐get方式:
 

复制代码 代码示例:

<?php
//初始化
$ch = curl_init();

//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.jb200.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);

//执行并获取HTML文档内容
$output = curl_exec($ch);

//释放curl句柄
curl_close($ch);