Curl のダウンロード前に長い遅延が発生する

Curl のダウンロード前に長い遅延が発生する

Web ディレクトリにファイルが存在するかどうかを確認する bash スクリプトがあります。ファイルが存在しない場合は、単に終了します。Web ディレクトリにファイルが存在する場合は、ダウンロードします。

スクリプトは正常に動作しますが、「exists」条件を満たしてからスクリプトが実際にトリガーされるまでに 5 分以上の遅延時間 (行 4) を測定しました。

このスクリプトで何かが欠けていて、スクリプトの実行が遅れているのでしょうか?

Bash スクリプト コード:

url="http://website.url/directory/file.txt"

if curl -f ${url} >/dev/null 2>&1; then
  bash some_bash_script.sh
else
  exit 0
fi

答え1

結局、wget --spider長いダウンロード遅延を回避するために を使用しましたcurl

変更された Bash スクリプト:

url="http://website.url/directory/file.txt"

if wget --spider ${url} >/dev/null 2>&1; then
  bash some_bash_script.sh
else
  exit 0
fi

答え2

次のようなこともできます:

curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
# on success (page exists), $? will be 0; on failure (page does not exist or
# is unreachable), $? will be 1

ソース:https://stackoverflow.com/questions/2924422/how-do-i-determine-if-a-web-page-exists-with-shell-scripting

if $?
; then
  bash somescript.sh
else
  exit 0
fi

クレジット: @zneak

関連情報