2016-04-26 55 views
0

我正在寫一個腳本,從URL中獲取一些重要的數據(通過cronjob),併發送一封電子郵件,如果失敗,但它似乎並沒有認識到它是否失敗checking wget's return value [if]):發送電子郵件,如果wget失敗

wget_output=$(wget --tries=1 --timeout=300 -r -N -nd -np --reject=html https://myurl/ -P ../data) 
if [ $? -ne 0 ] 
then 
    echo "send email here" >> ./test.txt 
else 
    echo "send email here" >> ./test2.txt 
fi 

它只是嘗試1周時間(告知),然後放棄,但不承認,它可能成功,也沒有。我假設我沒有正確處理退出代碼或其他東西。任何想法?謝謝

回答

2

你正在使用的wget版本是什麼?版本1.15手冊頁的退出狀態部分說:

在1.12之前的Wget版本中,Wget的退出狀態往往是無益和不一致的。無論遇到什麼問題,遞歸下載實際上都會返回0(成功),而非遞歸提取僅返回與最近嘗試下載相對應的狀態。

+0

有趣,雖然我很驚訝,'test2.txt'沒有在這種情況下創建(創建既不文件) – timhc22

+0

當你在一個cron作業運行這個你應該使用這些文件的絕對路徑:在工作目錄可能不是你所期望的。並確保cron用戶具有對該目標目錄的寫入權限。也許還值得去檢查,如果任何機會shell選項'errexit'已被設置爲活動。 – jil

+0

啊,非常感謝,明天我就去試試吧! – timhc22

相關問題