Длительная задержка перед загрузкой Curl

Длительная задержка перед загрузкой Curl

У меня есть скрипт bash, который проверяет, существует ли файл в веб-каталоге. Если файл не существует, он просто завершает работу. Если файл существует в веб-каталоге, он загружает его.

Однако скрипт работает правильно, я только что измерил задержку в 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

Связанный контент