經過apache
重建我的cron
職位停止工作。 我用下面的命令:如何使用curl命令設置cron?
wget -O - -q -t 1 http://example.com/cgi-bin/loki/autobonus.pl
現在我的DC支持建議我到wget
方法更改爲curl
。在這種情況下,正確的價值是什麼?
經過apache
重建我的cron
職位停止工作。 我用下面的命令:如何使用curl命令設置cron?
wget -O - -q -t 1 http://example.com/cgi-bin/loki/autobonus.pl
現在我的DC支持建議我到wget
方法更改爲curl
。在這種情況下,正確的價值是什麼?
-O -
相當於curl的默認行爲,所以很容易。
-q
是捲曲的-s
(或--silent
)
--retry N
將取代wget
的-t N
總而言之:
curl -s --retry 1 http://example.com/cgi-bin/loki/autobonus.pl
我試過這個命令,它不起作用:(然後我刪除了-s。發生以下錯誤:curl:(56)從對等端接收數據時失敗 – user3062493
嘗試運行帶有wget的
的完整路徑變化/usr/bin/wget -O - -q -t 1 http://example.com/cgi-bin/loki/autobonus.pl
,你可以找到的完整路徑:
which wget
多,檢查是否能達到用ping或其他方式的目標域:
ping example.com
更新:
根據意見,似乎是由/ etc/hosts中的行引起的:
127.0.0.1 example.com #change example.com to the real domain
根據你的評論,你可能在/ etc/hosts中有一個記錄,域指向127.0.0.1,因此得到404響應 – Lax
該網站工作正常,只是ping了它。下面是我得到的:解決example.com ... 127.0.0.1 連接到example.com | 127.0.0.1 |:80 ...已連接 發送HTTP請求,正在等待響應... 404未找到 2014-12-23 07:44:01錯誤404:未找到 – user3062493
那麼我應該寫什麼來代替127.0.0.1? – user3062493
看來你有限制的選項,在cron應該運行的服務器上,你的域名被固定爲127.0.0.1
,但虛擬主機配置不能使用它。
你可以做的就是讓wget
通過IP連接,但發送Host
頭,這樣的虛擬主機匹配會的工作:
wget -O - -q -t 1 --header 'Host: example.com' http://xx.xx.35.162/cgi-bin/loki/autobonus.pl
更新
也可能是你並不需要通過網絡服務器運行,所以爲什麼不運行:
perl /path/to/your/script/autobonus.pl
這是我獲得:連接到xx.xx.35.162:80 ...已連接。 發送HTTP請求,等待響應...沒有收到數據。 放棄。 – user3062493
然後它肯定是某種網絡問題。也許你需要使用內部IP。運行'ip addr | grep -oP'inet \ K [0-9。] +''並從那裏嘗試地址。 – fejese
好吧,其實xx.xx.35.162是否存在,還有127.0.0.1 – user3062493
如果你運行th e命令手動? 'wget'應該覆蓋你的需求。嘗試運行它而不使用'-q'選項來獲得更詳細的輸出。 – fejese
如果我在瀏覽器中運行http://example.com/cgi-bin/loki/autobonus.pl,一切正常。在沒有-q的情況下更改爲wget。發生以下錯誤:正在解析example.com ... 127.0.0.1 正在連接到example.com | 127.0.0.1 |:80 ...已連接。 HTTP請求已發送,正在等待響應... 404未找到 2014-12-23 07:38:01錯誤404:未找到。 – user3062493
您的網絡服務器只能在公用IP上而不是本地主機上偵聽該虛擬主機。所以當你使用帶外部IP的域時,它可以工作,但是在服務器上'/ etc/hosts'文件中可能會有一個指向127.0.0.1的條目。你可以檢查嗎? – fejese