2016-04-26 21 views
0

私は、URLからいくつかの重要なデータを(cronjob経由で)取り込み、失敗した場合に電子メールを送信するスクリプトを書いていますが、失敗したかどうかを認識していないようですchecking wget's return value [if]):それはちょうど1時間をしようと(言われたように)、その後断念するが、それが成功したかしていないのどちらかということを認識しません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 

。私は出口コードを正しく扱っていないと推測しています。何か案が?おかげで

答えて

2

あなたが使用しているwgetのバージョンは何ですか?バージョン1.15のマニュアルページの終了ステータスセクションには、

があります.Wgetのバージョンが1.12より前のバージョンでは、Wgetの終了ステータスは役に立たず、一貫性がありませんでした。発生した問題にかかわらず、再帰的ダウンロードは事実上常に0(成功)を返し、非再帰的フェッチは最も最近試みたダウンロードに対応するステータスのみを返します。

+0

面白い、私はtest2.txt'は(どちらのファイルが作成された)あなたはcronジョブでこれを実行しているとして、あなたは、これらのファイルの絶対パスを使用する必要があります – timhc22

+0

その場合には作成されていない '驚いているものの:作業ディレクトリが期待どおりにならない可能性があります。また、cronユーザーがそのターゲットディレクトリへの書き込み権限を持っていることを確認してください。また、シェルオプション 'errexit'がアクティブに設定されているかどうかを調べる価値があります。 – jil

+0

ああすばらしいおかげで、私は明日に行くつもりです! – timhc22

関連する問題