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

How to run PHP script at a certain time using at command?

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

经过大量工作,这就是最终对我有用的方法:

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