
Eu tenho um script bash que verifica se existe um arquivo em um diretório da web. Se o arquivo não existir, ele simplesmente será encerrado. Se o arquivo existir no diretório da web, ele será baixado.
O script funciona corretamente, no entanto, acabei de medir um tempo de atraso de 5:00 minutos ou mais antes que o script fosse realmente acionado (Linha 4) após atender à condição "existe".
Estou faltando alguma coisa neste script que está atrasando a execução do script?
Código de script 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
Responder1
Acabei usando wget --spider
para contornar o longo atraso de download com arquivos curl
.
Script Bash modificado:
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
Responder2
Você também pode fazer algo assim:
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
crédito para @zneak