我有一个带文件删除命令的sh文件。
我从php运行它:
shell_exec("sudo -n ./truncatefiles.sh 2>&1");
如果我从浏览器打开PHP文件,那么这可以正常工作,但是从预定的cron选项卡中无效。
PHP用户:www-data
如果我从cron运行whoiami
,则返回相同的内容:www-data
我把它添加到我的视觉中:
www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh
这个sh文件的Shell exec返回(来自cron):
sudo:抱歉,运行sudo需要密码
为什么在cron中使用dirrefent方式?
我该怎么办才能让它发挥作用?
答案 0 :(得分:0)
请尝试执行以下操作, 尝试将输出从crotab记录到文件中, * * myscript.php>> /var/log/myjob.log 2>& 1 这样您就可以调试脚本。 1.还检查shell脚本的用户和权限,php文件。 2.尝试使用sudo crotab -e