Xargs und Wget hören nach einer Stunde auf zu arbeiten


8

Ausführen eines Skripts mit Cygwin unter Windows XP mit Dual Core und 4 GB RAM

cat url_list.txt | xargs -P50 wget -i

Ich versuche, Schleppnetz durch 4GB der URL zum Download (ca. 43 Millionen)

Funktioniert in der ersten Stunde einwandfrei, dann werden die Bash-Shell und die Downloads gestoppt, obwohl die URL-Liste nur 2% beträgt.

Irgendwelche Ideen, was falsch sein könnte?

Was ist der beste Weg, um zu debuggen, warum dies nach einer Stunde aufhört?

Antworten:


2

Es ist möglich, dass wget einige Zeit braucht, um einige der Dateien herunterzuladen. Gibt es während des Zeitraums, in dem es scheinbar hängen bleibt, irgendwelche wget / xargs-Prozesse im Speicher? Wenn ja, sind es die vollen 50 Prozesse, die Sie xargs mit dem -P50-Flag zugewiesen haben, oder hat es sich irgendwie über diese Zahl oder weniger als diese Zahl eingeschlichen und es werden keine neuen Instanzen ordnungsgemäß erzeugt? Obwohl es unter Cygwin ausgeführt wird, sehen Sie sich die Prozessliste in Windows selbst an, da jeder Wget-Download eine Instanz im Task-Manager starten sollte.


0

Ich gehe davon aus, dass die URLs für verschiedene Websites sind. In diesem Fall können Sie Websites aufrufen, die nur langsam reagieren und eines Ihrer Wgets hängen lassen. Da 50 ausgeführt werden, müssen Sie 50 dieser Websites aufrufen, bevor nichts passiert.

Um zu sehen, ob dies der Fall ist, versuchen Sie, eines der hängenden Wgets zu töten und festzustellen, ob dieses dann nicht mehr steckt.

Um URLs zu überspringen, die hängen bleiben, können Sie wget eine Zeitüberschreitung geben:

wget -T 60
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.