![在 crontab 中以 sudo 身份执行 php](https://linux22.com/image/669411/%E5%9C%A8%20crontab%20%E4%B8%AD%E4%BB%A5%20sudo%20%E8%BA%AB%E4%BB%BD%E6%89%A7%E8%A1%8C%20php%20.png)
我编写了一个 PHP 脚本,由于执行了一些其他与系统相关的内容,因此执行时需要 sudo 权限。因此我已将其添加到crontab -e
但我看不到我的脚本是否正常运行。
命令:
*/5 * * * * /usr/bin/php /srv/www/php/script.php && date > /srv/www/php/mylog.log
唯一的输出是日期。我的脚本没有响应。它是可执行的(chmod a+x),如果我以 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”总是获得最新的时间戳,所以我猜想,里面的脚本可能有问题。
编辑:我创建了另一个测试脚本来检查脚本是否被执行。但是脚本被执行了,所以这是脚本内部的问题。
我正在尝试将动态 IP 添加到 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
你能看到一些奇怪的东西吗?
答案1
将其添加到您的 /etc/crontab 文件中,如下所示:
*/5 * * * * root /usr/bin/php /srv/www/script.php && date > /srv/www/php/mylog.log
如果您的脚本的第一行#!/usr/bin/php
也是执行权限,您可以像任何其他脚本一样直接调用它,例如用 bash、perl 等编写的脚本......
此致!