我需要在特定时间运行一次PHP脚本。我是这样做的:
shell_exec('echo /usr/local/bin/php /home/xxx/public_html/yyy.php param1 | /usr/bin/at now + 1 minutes');
yyy.php从$_SERVER['argv'][1]
获取param1并根据值执行其操作。我已经测试了yyy.php,脚本可以正常工作。我遇到的问题是我似乎无法获得at
命令来正确执行PHP脚本。我尝试过不同的变体,例如:
shell_exec('/usr/local/bin/php /home/xxx/public_html/yyy.php param1 | /usr/bin/at now + 1 minutes');
shell_exec('echo "/usr/local/bin/php /home/xxx/public_html/yyy.php param1" | /usr/bin/at now + 1 minutes');
没有任何作用。我已经双重检查并确保通过在终端中调用at
来排队atq
命令 - 作业显示出来。我认为问题在于我如何设置at
命令。有任何想法吗?谢谢!
答案 0 :(得分:1)
经过大量工作,这才最终为我效劳:
a)CHMOD yyy.php至755
b)在PHP脚本中使用shell_exec('cd /home/xxx && echo "/usr/local/bin/php /home/xxx/public_html/yyy.php param1" | /usr/bin/at now + 1 minutes');