Potřebuji stáhnout velký soubor (1GB). Mám také přístup k více počítačům se systémem Linux, ale každý je omezen na rychlost stahování 50 kB/s podle zásad správce.
Jak rozložím stahování tohoto souboru na několik počítačů a po stažení všech segmentů je sloučím, abych jej mohl přijímat rychleji?
Přijatá odpověď:
Běžné protokoly HTTP, FTP a SFTP podporují požadavky na rozsah , takže si můžete
vyžádat část souboru. Všimněte si, že to také vyžaduje podporu serveru, takže to
v praxi může nebo nemusí fungovat.
Můžete použít curl
a -r
nebo --range
možnost specifikovat rozsah a
případně jen cat
spojování souborů dohromady. Příklad:
curl -r 0-104857600 -o distro1.iso 'http://files.cdn/distro.iso'
curl -r 104857601-209715200 -o distro2.iso 'http://files.cdn/distro.iso'
[…]
A nakonec, když shromáždíte jednotlivé části, zřetězíte je:
cat distro* > distro.iso
Další informace o souboru, včetně jeho velikosti, získáte pomocí --head
možnost:
curl --head 'http://files.cdn/distro.iso'
Můžete načíst poslední blok s otevřeným rozsahem:
curl -r 604887601- -o distro9.iso 'http://files.cdn/distro.iso'
Přečtěte si manuálovou stránku curl pro více možností a vysvětlení.
Můžete dále využít ssh a tmux pro usnadnění spouštění a sledování
stahování na více serverech.