1

如果我像这样简单地运行它,我有一个 PHP 脚本在命令行上运行得非常好php /path/to/script/script.php。如果我现在在 cron 中使用这个命令crontab -e并添加以下行:

*/1 * * * * php /path/to/script/script.php 2>&1 >> /var/log/logfile.log

它确实按预期每分钟执行一次,并且所有输出都被放入日志文件中,就像在命令行上运行它一样。但是脚本的某些部分似乎不起作用。这些特定部分是类似的行:

system('mkdir /mnt/temp', $retVal);

或者

exec('mkdir /mnt/temp');

我已经尝试了所有可能的事情,比如以 root 身份运行它,对所有受影响的脚本和文件夹的权限,使用/bin/mkdir而不是mkdir. system() 的返回值是 0 用于在 CLI 上运行它,1 用于 crontab 方式。

有什么建议么?

4

1 回答 1

2

我无法解决 CLI 与 crontab 的问题,但对我有用的解决方案是在 cron 中使用 bash 脚本。而那个 bash 脚本又调用 PHP 脚本。在我需要运行脚本的任何用户下,这就像一个魅力。所以我不能说这是或不是权限问题。

感谢您的所有评论

于 2013-01-24T12:01:09.817 回答