一、在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.com

Crontab PHP 实战

Linux Crontab 执行 PHP 需注意工作目录与输出重定向。

  • 完整路径调用
  • 工作目录处理
  • 点赞(0) 打赏

    评论列表 共有 0 条评论

    暂无评论
    立即
    投稿

    微信公众账号

    微信扫一扫加关注

    发表
    评论
    返回
    顶部