2016-11-29 121 views
0

我有一个带有文件删除命令的sh文件。从cron运行sh文件

我从PHP运行它是这样的:如果我打开浏览器从PHP文件

shell_exec("sudo -n ./truncatefiles.sh 2>&1"); 

那工作正常,但是从预定的cron标签不工作。

PHP用户:www-data

如果我从cron运行whoiami,返回相同的:WWW的数据

我将此添加到我的visudo命令:

www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh 

壳牌高管为此SH文件的回报(来自cron):

sudo:对不起,需要密码才能运行sudo

为什么在cron中使用dirrefent?

我该怎么做才能让它工作?

+0

它是一个Apache网络服务器,对不对? – mirko911

+0

是的,它的2.2.16(Debian) – bbenhu

回答

0

请尽量做到以下几点, 尝试从crotab你的输出记录到文件中, * myscript.php >> /var/log/myjob.log 2> 这样你就可以调试脚本。 1.另外检查用户和你的shell脚本的权限,php文件。 2.试用sudo crotab -e

+0

我知道回复:sudo:对不起,需要密码才能运行sudo – bbenhu

+0

PHP文件777,sh文件777 – bbenhu

+0

shell exec这种方式:./truncatefiles.sh 2>&1 ask密码,以sudo开头-n返回密码是必需的。没有更多的回应:( – bbenhu