如何使用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');
我需要在特定时间 运行 一个 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');