Curl 下载前的长时间延迟

Curl 下载前的长时间延迟

我有一个 bash 脚本,用于检查 Web 目录中是否存在文件。如果该文件不存在,它就会退出。如果该文件确实存在于 Web 目录中,则会下载该文件。

然而,该脚本工作正常,我只是在满足“存在”条件后实际触发脚本(第 4 行)之前测量了 5:00 分钟以上的延迟时间。

我是否在该脚本中遗漏了一些导致脚本运行延迟的内容?

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-define-if-a-web-page-exists-with-shell-scripting

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

归功于@zneak

相关内容