
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
if $?
; then
bash somescript.sh
else
exit 0
fi
クレジット: @zneak