我正在尝试创建一个cronjob,但我不知道这些行之间有什么区别,也不知道应该使用哪一行才能使cronjob正常工作。
0 0 * * * /usr/bin/php5.5 /website/cron.php
0 0 * * * /usr/bin/curl /website/cron.php
0 0 * * * /usr/bin/wget /website/cron.php
现在我需要知道哪一个有效,我确信我的服务器已经安装了CURL和WGET,使用命令行:
whereis wget
whereis curl
但是当我尝试创建一个简单的php文件来发送电子邮件时,只有这段代码为我工作:
0 0 * * * /usr/bin/php5.5 /website/cron.php
那么该怎么办呢?
CURL
curl是一个从服务器传输数据或向服务器传输数据的工具支持的协议
语法是
curl [oprions] URL
URL语法依赖于协议。你会找到详细的描述rfc3986 .
wget 的情况与类似
wget [options] URL
都将通过HTTP向weserver的php模块提交请求,该模块只返回调用php编译器。要在cron中使用,cron.php必须位于可以通过HTTP
请求的位置。0 0 * * * /usr/bin/curl http://web-url/cron.php
0 0 * * * /usr/bin/wget http://web-url/cron.php
,
0 0 * * * /usr/bin/php5.5 /website/cron.php
可以简单地用于运行服务器
curl
和wget
应该发送http请求(如下载文件/发布数据等)
cron.php
是一个php文件。你应该始终使用php(无论版本)来执行它。
这就是为什么只有0 0 * * * /usr/bin/php5.5 /website/cron.php
工作。
如果你真的想使用curl
或wget
,这里有一个例子:
0 0 * * * /usr/bin/curl --silent http://youwebsite.com/cron.php &>/dev/null