[英]PHP Cron Job set but not running
我已經設置了玉米工作
exec('echo -e "`crontab -l`\n* * * * * http://example.com/cron/sendsms.php" | crontab -');
我已經看到了
$output = shell_exec('crontab -l');
echo '<Pre>';
echo $output;
//o/p * * * * * http://example.com/cron/sendsms.php
到此為止一切正常。
如果我運行此網址( http://example.com/cron/sendsms.php )。 然后就可以正常工作了。
但是cron並沒有在設定的時間執行任務。 問題是什么?
據我所知,您的crontab包含以下行:
* * * * * http://example.com/cron/sendsms.php
就像在終端中輸入http://example.com/cron/sendsms.php
並按Enter一樣,URL作為外殼程序命令被調用。 如果要調用遠程PHP腳本,則應使用HTTP客戶端,例如
* * * * * wget -qO /dev/null 'http://example.com/cron/sendsms.php'
上面的命令將HTTP GET請求發送到URL,並將響應輸出到空設備(忽略輸出的常見方法)。
順便說一句,將條目追加到crontab的方式在許多方面都不正確。
您不應該使用shell echo
命令 ,而應使用printf
。
使用$(...)
代替后引號,因為a)無法構建嵌套的命令替換,並且b) $(...)
格式更易讀。
避免在PHP中使用復雜的shell構造。 如果需要復雜的Shell構造,則應為Shell腳本創建一個單獨的文件。
您可以借助proc_open()
附加crontab條目,而無需使用外殼程序管道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.