Ich lade immer wget -c
eine Datei herunter, die den Download ermöglicht, indem sie bei Bedarf an die letzte Downloadposition angehängt wird.
Eine Datei wird heruntergeladen 30%
. Dann, nach der Netzwerkbelegung, wurde am Ende Datenmüll an die Datei angehängt, bis dieser erreicht war 40%
. (Datenmüll wurde hinzugefügt, da die Logik des Dateiservers nach Datenmüll sucht 30mins
.)
Jetzt habe ich einen neuen URL-Speicherort mit einigen neuen Token, die als Nächstes 30mins
für dieselbe Datei verfügbar sind. Wie kann ich mit dem Herunterladen derselben Datei fortfahren, aber ab 30%
jetzt beginnen?
Oder gibt es eine Anwendung, die das kann?
ex:
$ wget -c http://xyz.com/file.txt?token=1
30% [=============> ]
40% [=================> ] (10%junk added)
^C - cancelled
$ wget -c http://xyz.com/file.txt?token=2 --from='30%'
31% [+++++++++++++=> ]
Hinweis: - --from='30%'
ist nur ein Beispiel, wenn es möglich ist. Es gibt kein vergleichbares Argument inwget
Antwort1
wget -c / --continue
fährt immer mit der angegebenen Dateigröße fort, aber Sie können das ändern:
Verwenden Sie truncate
, um die Datei wieder auf die Originalgröße zu reduzieren 30%
(Sie müssen die Größe in Bytes oder KBytes angeben). Oder Sie können verwenden head -c SIZE file > file_30pc
, wodurch die Originaldatei nicht verändert wird (Sie müssen sie dann aber umbenennen).
Und wie BlueManCZ vorgeschlagen hat, sollten Sie sicherstellen, -O output-file
dass es sich um dieselbe Datei handelt.
Notiz:Die Verwendung --start-pos
von anstelle -c/--continue
der Angabe der letzten guten Position wirdnichtfunktioniert, stattdessen wird ab dieser Position eine neue Datei erstellt, es wird keine vorhandene angehängt (es wird sogar überschrieben, wenn Sie angeben -O
).
Antwort2
Wenn Sie mit dem Herunterladen derselben Datei von einer anderen URL fortfahren müssen (oder die Datei umbenannt haben), müssen Sie in Ihrem Befehl den Dateinamen angeben.
wget -c -O myfilename https://examle.net/file1.txt
[will be stoped in 30%]
wget -c -O myfilename https://another_url.net/file2.txt
[will start on 30% of previous file]
[file1.txt and file2.txt must be same]
Aber ich weiß nicht, ob es genau die Antwort auf Ihr Problem ist.
Antwort3
Sie können ein anderes tolles Linux-Tool namens aria2 ausprobieren. Hier erfahren Sie, was Sie tun müssen, um Ihren Download fortzusetzen
aria2c -c -m 0 -o "myfile.zip" "http://example.com/file.zip"
hier -c bedeutet, den vorherigen Download fortzusetzen -m bedeutet, den Download unendlich oft zu wiederholen -o bedeutet, die Ausgabedatei
Probieren Sie es aus aria2 ist einer der besten Downloader für Linux