Laut der Manpage von wget gibt es einige Optionen im Zusammenhang mit Zeitüberschreitungen - und es gibt eine Standard-Lesezeitüberschreitung von 900s - also sage ich, dass es eine Zeitüberschreitung geben könnte.
Hier sind die fraglichen Optionen:
-T seconds
--timeout=seconds
Stellen Sie das Netzwerk-Timeout auf Sekunden Sekunden ein. Dies ist äquivalent zu spezifizieren --dns-timeout
,
--connect-timeout
und
--read-timeout
, die alle zur gleichen Zeit.
Und für diese drei Optionen:
--dns-timeout=seconds
Stellen Sie das DNS-Suchzeitlimit auf Sekunden Sekunden ein.
DNS-Suchvorgänge, die nicht innerhalb der angegebenen Zeit abgeschlossen werden, schlagen fehl.
Standardmäßig gibt es keine Zeitüberschreitung bei DNS-Suchvorgängen, außer der von Systembibliotheken implementierten.
--connect-timeout=seconds
Stellen Sie das Verbindungszeitlimit auf Sekunden Sekunden ein.
TCP-Verbindungen, deren Herstellung länger dauert, werden abgebrochen.
Standardmäßig gibt es kein anderes Verbindungszeitlimit als das von Systembibliotheken implementierte.
--read-timeout=seconds
Stellen Sie das Lese- (und Schreib-) Zeitlimit auf Sekunden Sekunden ein.
Die "Zeit" dieses Zeitlimits bezieht sich auf die Leerlaufzeit: Wenn zu einem beliebigen Zeitpunkt des Downloads länger als die angegebene Anzahl von Sekunden keine Daten empfangen werden, schlägt das Lesen fehl und der Download wird neu gestartet.
Diese Option wirkt sich nicht direkt auf die Dauer des gesamten Downloads aus.
Ich nehme an, so etwas zu benutzen
wget -O - -q -t 1 --timeout=600 http://www.example.com/cron/run
sollte sicherstellen, dass es keine Zeitüberschreitung gibt, die länger als die Dauer Ihres Skripts ist.
(Ja, das ist wahrscheinlich die brutalste Lösung ^^)
-t
Option scheint ein Alias von zu sein--tries
, der die Anzahl der Wiederholungsversuche auf Nummer setzt. ;;; Es scheint sich nicht auf irgendeine Art von Zeitüberschreitung zu beziehen, sondern auf die Häufigkeit, mit der wget erneut versucht, herunterzuladen, wenn ein Fehler auftritt - und Sie möchten wahrscheinlich nicht, dass eine Zeitüberschreitung als Fehler betrachtet wird Skript wird erneut aufgerufen.--timeout
. Wahrscheinlich, weil ich im Befehl die grundlegendeDas Standardzeitlimit beträgt 900 Sekunden. Sie können ein anderes Zeitlimit angeben.
Standardmäßig wird 20 Mal wiederholt. Sie können verschiedene Versuche angeben.
link: wget man document
quelle
Da Sie in Ihrer Frage sagten, es sei ein PHP-Skript, könnte die beste Lösung darin bestehen, einfach ein Skript hinzuzufügen:
Auf diese Weise
wget
wird das PHP-Skript auch nach Beendigung mindestens so lange verarbeitet, bis es dasmax_execution_time
Limit nicht überschreitet (INI-Direktive: Standardmäßig 30 Sekunden).Wie auch
wget
immer, Sie sollten das Timeout nicht ändern. Laut UNIX-Handbuch beträgt das Standard-Wget-Timeout 900 Sekunden (15 Minuten) und ist viel größer als die 5-6 Minuten, die Sie benötigen.quelle
Vor Version 1.14 wurden wget-Timeout-Argumente beim Herunterladen über https aufgrund eines Fehlers nicht eingehalten .
quelle