一、在Crontab中使用PHP CLI执行脚本
就像在Crontab中调用普通的shell脚本一样,使用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文本浏览器
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx默认使用对话方式打开URL,我们使用 -dump 选项来把URL的输出转换到标准输出。
00 * * * * lynx -dump https://www.example.com/myscript.php使用CURL
下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用 curl -o 选项,也可以把脚本的输出转储到临时文件。
*/5 * * * * /usr/bin/curl -o temp.txt https://www.example.com/myscript.php使用WGET
下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q 选项表示安静模式,-O temp.txt 表示输出会发送到临时文件。
*/10 * * * * /usr/bin/wget -q -O temp.txt https://www.example.com/myscript.php三、curl中&符号的转义问题
当URL中包含多个GET参数时,在Web形式下访问可以正常获取所有参数,但在Linux命令行下使用curl可能会遇到问题。
问题描述
curl http://mywebsite.com/index.php?a=1&b=2&c=3在Web形式下访问上述URL,使用 可以获取到所有的参数。然而在Linux下, 只能获取到参数a。因为URL中的 & 会使进程在系统后台运行,其他参数获取不到。
解决方案
必须对 & 进行转义才能让 获取到所有参数:
curl http://mywebsite.com/index.php?a=1\&b=2\&c=3当然,最简单的方法是用双引号把整个URL引起来:
curl -s "http://mywebsite.com/index.php?a=1&b=2&c=3"四、curl中POST传参数的方法
使用 curl -d 可以POST传递参数:
curl -d 'name=1&pagination=2' demoapp.sinap.com/worker.php这样站点中的 worker.php 脚本,就能得到 ['name'] 和 ['pagination'] 对应的值。
五、curl获得网站信息的方法
使用 --head 可以获取网站的头部信息(-s 表示静默模式):
curl -s --head www.sina.comCrontab PHP 实战
Linux Crontab 执行 PHP 需注意工作目录与输出重定向。

发表评论 取消回复