
У меня есть скрипт 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
if $?
; then
bash somescript.sh
else
exit 0
fi
спасибо @zneak