URL/ファイルが存在することを確認してダウンロードする方法

URL/ファイルが存在することを確認してダウンロードする方法

bashにzipファイルがあることを確認してダウンロードする正しい方法はありますか?ファイルが利用できない場合、しばらく待ってから利用できるようになったらダウンロードしてください。たとえば、x秒ごとにURLを確認し、利用可能な場合はファイルをダウンロードして終了し、そうでない場合はダウンロードされるのを待ちます。それは次のとおりです。

if curl --head --silent --fail -X POST https://192.168.1.2/file/file.zip 2> /dev/null;
then
    wget https://192.168.1.2/file/file.zip
else
    sleep 60 && #check every x seconds and download when available"
fi

ありがとう、

答え1

成功するまで、単にコマンドを再実行できます。

while ! wget https://192.168.1.2/file/file.zip; do
    sleep 60
done

答え2

wget確認と再試行の基本オプションがあります。以下は、役に立つと思われるオプションのいくつかを適切に組み合わせることです。

--spider
           When invoked with this option, Wget will behave as a Web spider, which means that it will not download the pages, just check that they are there.

-w seconds
       --wait=seconds
           Wait the specified number of seconds between the retrievals.  Use of this option is recommended, as it lightens the server load by making the requests less frequent.  Instead
           of in seconds, the time can be specified in minutes using the "m" suffix, in hours using "h" suffix, or in days using "d" suffix.

           Specifying a large value for this option is useful if the network or the destination host is down, so that Wget can wait long enough to reasonably expect the network error to
           be fixed before the retry.  The waiting interval specified by this function is influenced by "--random-wait", which see.
    enter code here

-t number
       --tries=number
           Set number of tries to number. Specify 0 or inf for infinite retrying.  The default is to retry 20 times, with the exception of fatal errors like "connection refused" or "not
           found" (404), which are not retried.

これがもっとあります。man wget

関連情報