
Tengo un script bash que verifica si existe un archivo en un directorio web. Si el archivo no existe, simplemente se cierra. Si el archivo existe en el directorio web, lo descarga.
El script funciona correctamente, sin embargo, acabo de medir un tiempo de retraso de más de 5:00 minutos antes de que el script se activara realmente (Línea 4) después de cumplir con la condición "existe".
¿Me falta algo en este script que retrasa su ejecución?
Código de secuencia de comandos 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
Respuesta1
Terminé usando wget --spider
para evitar el largo retraso de descarga con 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
Respuesta2
También puedes hacer algo como esto:
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 a @zneak