Superuser

Autor Thema: einen wget task wieder auf nehmen  (Gelesen 4467 mal)

Offline Freud-Schiller

  • Sobl Guru
  • *****
  • Beiträge: 927
einen wget task wieder auf nehmen
« am: 13. März 2007, 10:51:24 »
Hi Leute, leider bricht ein wget task so nach 40h bei mir ab. wie bringe ich wget dazu, die schon vorhandenen ergebnisse zu nutzen und nur neue bzw unvollständige daten zu laden, nicht aber die schon vorhandenen zu über schreiben? Gruß und vielen Dank David

sonnenblen.de - Das unabhängige Sun User Forum

einen wget task wieder auf nehmen
« am: 13. März 2007, 10:51:24 »

Offline justus2k

  • Sobl Newbie
  • *
  • Beiträge: 1
Re: einen wget task wieder auf nehmen
« Antwort #1 am: 13. März 2007, 11:36:46 »
Hi Freud-Schiller,

laut manpage geht das mit
wget -c

Gruss
Justus2k

mdjr

  • Gast
Re: einen wget task wieder auf nehmen
« Antwort #2 am: 13. März 2007, 18:40:18 »
Hi Leute, leider bricht ein wget task so nach 40h bei mir ab. wie bringe ich wget dazu, die schon vorhandenen ergebnisse zu nutzen und nur neue bzw unvollständige daten zu laden, nicht aber die schon vorhandenen zu über schreiben? Gruß und vielen Dank David
Hi Freud-Schiller,

laut manpage geht das mit
wget -c

Gruss
Justus2k

Hinweis dazu: Das ganze muss auch vom Server unterstützt werden. Ältere Server unterstützen die Wiederaufnahme einer abgebrochenen Verbindung nicht.

Martin

Offline Freud-Schiller

  • Sobl Guru
  • *****
  • Beiträge: 927
Re: einen wget task wieder auf nehmen
« Antwort #3 am: 14. März 2007, 22:02:41 »
Danke Justus und Martin, ich habe mich bei dem Thema aber scheinbar schlecht ausgedrückt. Also ;-) mal angenommen, jemand läd das FEH von SUN runter, so min ~ 10000 Dateien... Dann passiert nach einiger Zeit folgendes:

6000 Dateien sind da, alles kleine html Dateien, kein Thema.
Datei 6001 ist ein PDF und weils nach Down Under eben nicht immer schnell geht, bricht die Verbindung ab.
Dateien 6002-10000 sind wieder html Dateien und laufen alle durch.

Ich HÄTTE jetzt gerne, daß eben diese unvollständigen Dateien komplettiert werden und schon fertige Dateien einfach ignoriert werden.

Also praktisch ne Prüfung mit Korrektur drüber läuft.

Nach dem Lesen der MAN Page komme ich eher zu der ANNAHME, daß der Parameter "-c" für einzele große Dateien gedacht ist. Oder??

mdjr

  • Gast
Re: einen wget task wieder auf nehmen
« Antwort #4 am: 15. März 2007, 05:51:58 »
Nach dem Lesen der MAN Page komme ich eher zu der ANNAHME, daß der Parameter "-c" für einzele große Dateien gedacht ist. Oder??

Richtig.

Ich kenne wget nur so, dass man damit eine einzelne Datei runterläd und ging daher davon aus, dass du eine einzelne riesen Datei (z.B. DVD-Image) herunterladen willst.

Welche Befehlszeile nutzt du denn genau dazu und ggf. welche lokalen Dateien (z.B. Liste von Dateien auf dem Server), um den wget-Task zu starten?

Martin


Offline Freud-Schiller

  • Sobl Guru
  • *****
  • Beiträge: 927
Re: einen wget task wieder auf nehmen
« Antwort #5 am: 15. März 2007, 08:59:56 »
Hi Martin,
also ich nutze folgende Zeile: "wget -k -K -l 10 -r www.sun*****.org" damit sollte auch klar sein, daß ich viele kleine dateien und einige große lade. zur zeit sind es ca. 900mb beim ~40000 dateien. ich habe auch versucht paralelle zugriffe aufzubauen, jedoch funktioniert "-paralell 5" leider nicht als parameter ^^ :(

insgesamt schätze ich, daß ca. 100 dateien nicht richtig geladen worden sind. diese würde ich gerne zuende laden lassen...

Gruß David

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: einen wget task wieder auf nehmen
« Antwort #6 am: 15. März 2007, 16:08:06 »
Ich HÄTTE jetzt gerne, daß eben diese unvollständigen Dateien komplettiert werden und schon fertige Dateien einfach ignoriert werden.

Für letzteres gibt es die Option --no-clobber (bzw. -nc). Die verwende ich grundsätzlich, um zu verhindern dass wget mir was überbügelt wenn aus den Dateien die ich gerade lade auf etwas verlinkt wird was bereits vorhanden ist.

Das alleine bringt Dir aber nichts, da ja auch die unvollständigen Dateien "vorhanden" sind und somit nicht nochmal angefasst werden.

Weisst Du denn welche Dateien unvollständig sind? Dann kannst Du mal folgendes probieren:

for i in $(cat liste_fehlender_dateien.txt); do
    wget -c -x $i
done

Wenn Du z.B. meinst alle PDFs neu laden zu wollen:

find www.sun*****.org -name \*.pdf -print | sed 's/^/http:\/\//' > liste_fehlender_dateien.txt
Gruß,
Andrew.