Ich muss eine große Datei (1 GB) herunterladen. Ich habe auch Zugriff auf mehrere Computer, auf denen Linux ausgeführt wird, aber jeder ist durch eine Administratorrichtlinie auf eine Download-Geschwindigkeit von 50 kB/s beschränkt.
Wie verteile ich das Herunterladen dieser Datei auf mehrere Computer und füge sie zusammen, nachdem alle Segmente heruntergeladen wurden, damit ich sie schneller erhalten kann?
Akzeptierte Antwort:
Die gängigen Protokolle HTTP, FTP und SFTP unterstützen Bereichsanfragen , sodass Sie
einen Teil einer Datei anfordern können. Beachten Sie, dass dies auch Serverunterstützung erfordert, sodass es
in der Praxis funktionieren kann oder auch nicht.
Sie können curl
verwenden und das -r
oder --range
Option, um den Bereich anzugeben und
schließlich nur cat
Dateien zusammenfügen. Beispiel:
curl -r 0-104857600 -o distro1.iso 'http://files.cdn/distro.iso'
curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'
[…]
Und schließlich, wenn Sie die einzelnen Teile gesammelt haben, verketten Sie sie:
cat distro* > distro.iso
Mit --head
erhalten Sie weitere Informationen über die Datei, einschließlich ihrer Größe Möglichkeit:
curl --head 'http://files.cdn/distro.iso'
Sie können den letzten Chunk mit einem offenen Bereich abrufen:
curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso'
Lesen Sie die Curl-Manpage für weitere Optionen und Erklärungen.
Sie können ssh und tmux weiter nutzen, um die Ausführung zu vereinfachen und
die Downloads auf mehreren Servern zu verfolgen.