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