
Ich habe ein Bash-Skript, das prüft, ob eine Datei in einem Webverzeichnis vorhanden ist. Wenn die Datei nicht vorhanden ist, wird es einfach beendet. Wenn die Datei im Webverzeichnis vorhanden ist, wird sie heruntergeladen.
Das Skript funktioniert ordnungsgemäß. Ich habe jedoch gerade eine Verzögerung von über 5:00 Minuten gemessen, bevor das Skript nach Erfüllung der „existiert“-Bedingung tatsächlich ausgelöst wurde (Zeile 4).
Übersehe ich in diesem Skript etwas, das die Ausführung des Skripts verzögert?
Bash-Skriptcode:
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
Antwort1
wget --spider
Um die lange Download-Verzögerung zu umgehen, habe ich letztendlich verwendet curl
.
Modifiziertes Bash-Skript:
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
Antwort2
Sie können auch Folgendes tun:
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
Dank an @zneak