我有一个PHP脚本,如果我只是像php /path/to/script/script.php
那样运行它,它在命令行上运行得非常好。
如果我现在使用crontab -e
在cron中安排这个命令并添加行:
*/1 * * * * php /path/to/script/script.php 2>&1 >> /var/log/logfile.log
它会按预期每分钟执行一次,并且所有输出都会被放入日志文件中,就像在命令行上运行它一样。但是脚本的某些部分似乎不起作用。那些特定的部分是如下的行:
system('mkdir /mnt/temp', $retVal);
或
exec('mkdir /mnt/temp');
我尝试过使用/bin/mkdir
代替mkdir
等所有可能的操作,例如以root用户身份运行所有受影响的脚本和文件夹的权限。 system()的返回值为0表示在CLI上运行,1表示crontab方式。
有什么建议吗?
答案 0 :(得分:2)
我无法解决CLI vs crontab问题,但对我有用的解决方案是在cron中使用bash脚本。而该bash脚本又调用PHP脚本。这就像我需要运行脚本的任何用户下的魅力。 所以我不能说它是或者不是权限问题。
感谢所有评论家伙