Je dois télécharger un fichier volumineux (1 Go). J'ai également accès à plusieurs ordinateurs exécutant Linux, mais chacun est limité à une vitesse de téléchargement de 50 Ko / s par une stratégie d'administration.
Comment distribuer le téléchargement de ce fichier sur plusieurs ordinateurs et le fusionner une fois tous les segments téléchargés, afin de le recevoir plus rapidement?
download
cluster
parallelism
Meysam
la source
la source
Réponses:
Les protocoles communs HTTP, FTP et SFTP prennent en charge les demandes de plage afin que vous puissiez demander une partie d'un fichier. Notez que cela nécessite également une prise en charge du serveur, de sorte que cela peut ou non fonctionner dans la pratique.
Vous pouvez utiliser
curl
et la-r
ou--range
option pour spécifier la plage et finalement justecat
ting les fichiers ensemble. Exemple:Et finalement, lorsque vous avez rassemblé les parties individuelles, vous les enchaînez:
Vous pouvez obtenir plus d'informations sur le fichier, y compris sa taille, avec l'
--head
option:Vous pouvez récupérer le dernier morceau avec une plage ouverte:
Lisez la page de manuel curl pour plus d’options et d’explications.
Vous pouvez davantage utiliser ssh et tmux pour faciliter l'exécution et le suivi des téléchargements sur plusieurs serveurs.
la source
cat distro* > ...
vérifiez le tri des fichiers, car l’*
expans développé par votre shell pourrait le trier comme ceci:distro1.iso distro10.iso distro11.iso ...
et donc concaténer dans le mauvais ordre.cat distro{1..10}.iso
cat $(seq -fdist%g.iso 1 10)
devrait être plus prévisible, mais il échouecsh
, cependant. Le remplacement$(…)
par des points arrière semble fonctionner dans la plupart des coques.seq
n'est pas non plus une commande portable. Vous pouvez utiliserdistro001.iso
,distro002.iso
...distroy010.iso
Il faudrait environ 5,5 heures pour charger un fichier de 1 gigaoctet à 50 kilo-octets par seconde.
Il semble que les efforts visant à coordonner plusieurs ordinateurs pour obtenir des partiels permettent de gagner du temps.
Vous pouvez consulter bittorrent et utiliser le semis Web ainsi que les transferts via l'échange entre pairs. Chaque client peut recevoir des pièces et partager des pièces terminées avec le réseau local (LAN). Vous vous retrouvez avec le même fichier de 1 Go sur chaque ordinateur, mais la fusion des morceaux est automatisée.
la source