如何使用at命令在特定时间运行PHP脚本?

时间:2015-07-10 03:59:51

标签: php linux shell terminal

我需要在特定时间运行一次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命令。有任何想法吗?谢谢!

1 个答案:

答案 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');