在crontab里面用sudo执行php

我写了一个PHP脚本,执行需要sudo权限,因为它执行一些其他系统相关的东西。 所以我已经添加到crontab -e但是我看不到,我的脚本运行正常。

命令:

 */5 * * * * /usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log 

唯一的输出是date。 没有来自我的脚本的回应。 它是可执行文件(chmod a + x),如果我在terminal中使用和root相同的命令,一切都可以。 所以这取决于crontab -e

另外我确定,我的cronjob正在运行(/ var / log / syslog):

 Oct 23 16:40:01 $MYMACHINE CRON[13797]: (root) CMD (/usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log) 

而这个每5分钟。 另外我的“mylog.log”总是得到最新的时间戳,所以我猜,里面的脚本可能有问题。

编辑:我已经创build了另一个testing脚本来检查,如果脚本得到执行或不。 但脚本被执行了,所以这是脚本内部的问题。

我正在尝试将dynamicIP添加到iptables链中:

 #!/bin/bash value=`cat whitelist.txt` #echo "$value" for i in $(echo $value | tr "," "\n") do # process /sbin/iptables -I teamspeakCommunication --src $i -j ACCEPT done 

你可以看到奇怪的东西吗?

把它添加到你的/ etc / crontab文件中,如下所示:

*/5 * * * * root /usr/bin/php /srv/www/script.php && date > /srv/www/php/mylog.log

如果你的脚本的第一行是#!/usr/bin/php并且执行权限,你可以直接调用它,就像其他脚本一样,比如用bash,perl等写的脚本。

最好的祝福!