Hintergrund:
ich wget bin mit (Version 1.14-15.el7) auf RedHat Linux (Version 7.3 (Maipo)) in einer Bash (Version 4.2.46 (1)) Terminal.Warten Funktionalität in wget nicht wie erwartet funktioniert
Leider bin ich auf dieses spezielle RHEL-Image beschränkt, daher kann ich nicht auf eine neuere Version von wget upgraden.
Ziel:
Ich versuche, wget zu konfigurieren, so dass, wenn ein Download-Versuch fehlschlägt, geschieht Folgendes:
1) wiederholt den Download 4 weitere Male (insgesamt 5 Versuche)
2) wartet eine bestimmte Zeit (30 Sekunden) zwischen Download-Versuchen (‚Wiederholungen‘)
Für Kontext, hier ist ein relevanter Ausschnitt aus dem wget Handbuch:
-w seconds
--wait=seconds
Wait the specified number of seconds between the retrievals. Use of this option is
recommended, as it lightens the server load by making the requests less frequent.
Instead of in seconds, the time can be specified in minutes using the "m" suffix, in
hours using "h" suffix, or in days using "d" suffix.
Specifying a large value for this option is useful if the network or the destination
host is down, so that Wget can wait long enough to reasonably expect the network error
to be fixed before the retry. The waiting interval specified by this function is
influenced by "--random-wait", which see.
--waitretry=seconds
If you don't want Wget to wait between every retrieval, but only between retries of
failed downloads, you can use this option. Wget will use linear backoff, waiting 1
second after the first failure on a given file, then waiting 2 seconds after the second
failure on that file, up to the maximum number of seconds you specify.
By default, Wget will assume a value of 10 seconds.
Um klar zu sein, verwende ich die --wait
Flagge, NICHT die --waitretry
Flagge.
Prozess:
Zuerst habe ich exportieren/set ein falsches http_proxy und https_proxy, jeder Download-Versuch, um sicherzustellen, wird eine Zeitüberschreitung.
ich den folgenden Befehl: wget --tries=5 --wait=30 <url> -O <output_filename>
An diesem Punkt die --wait
Funktionalität nicht wie erwartet funktioniert. Insbesondere wartet es nicht 30 s nach jedem Download-Versuch.
Stattdessen:
1) Nach dem ersten Versuch wartet es 1s.
2) Nach dem 2. Versuch wartet es 2s.
3) Nach dem 3. Versuch wartet es 3s.
und so weiter ...
Mit anderen Worten, trotz Anwendung der --wait
Flagge (die in einer festen Wartezeit zwischen Download-Versuche führen sollte), so scheint wget eine ‚lineare Backoff‘ im --waitretry
wie beschrieben zu performen Flaggenabschnitt.
PROBLEM:
Ich mag die Funktionalität der --wait
Flagge, NICHT die --waitretry
Flagge.
Leider ist die --wait
Flagge scheint, wie die --waitretry
Flagge handeln zu werden - ist es eine Möglichkeit, um diese offensichtlichen Fehler in wget zu bekommen, so dass mit Hilfe der --wait
Flag Ergebnisse in der erwarteten feste Wartezeit zwischen Download-Versuchen?
Fragen zu allgemeiner Computerhardware und -software sind für Stack Overflow nicht relevant, es sei denn, sie beziehen sich direkt auf Tools, die hauptsächlich für die Programmierung verwendet werden. Sie können möglicherweise Hilfe auf https://superuser.com/questions/tagged/linux erhalten – tink
Danke, ich werde es dort verschieben. – Seth