2015-07-10 117 views
0

我需要在特定時間運行一次PHP腳本。我被這樣做:如何使用at命令在特定時間運行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]需要參數1和不基於價值的東西。我測試了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

試圖在命令行中運行這個? – 2015-07-10 04:08:16

+0

@Dagon是的我有 - at命令正在排隊(我用atq進行了檢查),但是PHP腳本不像它應該執行 – user4951834

+0

@Dagon如果我執行cd/home/xxx && echo「/ usr/local/bin/php /home/xxx/public_html/yyy.php param1「|/usr/bin/at now + 1 minutes' then then works from command line。但是,我試過shell_exec('cd/home/xxx && echo'/ usr/local/bin/php /home/xxx/public_html/yyy.php param1「|/usr/bin/at now + 1 minutes'); '而且它仍然不起作用。 – user4951834

回答

1

經過大量的工作,這是最終爲我工作:

一)CHMOD yyy.php 755

二)在PHP腳本中使用shell_exec('cd /home/xxx && echo "/usr/local/bin/php /home/xxx/public_html/yyy.php param1" | /usr/bin/at now + 1 minutes');