Simple me dis-je. Un simple scp fera l'affaire. C'est parti :
scp -C user@machine.com:/home/user/fichier.dat ./
Comme le fichier est gros par rapport à la bande passante, je laisse tourner toute la nuit. Sauf que le réseau sur lequel je suis (et que je ne contrôle pas) n'est pas fiable. Et donc la connexion s'est arrêtée au beau milieu de la nuit, et je me retrouve sur ma machine locale avec uniquement 7% du fichier.
Pas grave, je vais utiliser rsync, histoire que je puisse continuer mon download même en cas de coupure brutale. Et comme je suis un peu parano, on crypte le tout via ssh. Je lis le man, et je n'oublie pas d'utiliser l'option --partial pour qu'il n'efface pas ce qui à été partiellement téléchargé. C'est parti :
rsync -avz --partial --progress -e ssh user@machine.com:/home/user/fichier.dat ./
Et comme la nuit dernière, je laisse tourner.
Forcement, comme je m'y attendais, mon lien avec l'extérieur fut coupé. J'ai donc un fichier (largement) incomplet, mais je me dit qu'en relançant rsync, il va trouver les différences et va continuer le téléchargement là où il s'était arrêté. Grave erreur : rsync s'obstine à re-télécharger le fichier depuis le début. Quel perte de temps et de bande passante !
J'ai une solution un peu bourrin : utiliser des split/cat pour couper le fichier à distance et récupérer les morceaux que je ne possède pas pour les recoller en local.
Mais avant d'en arriver là, il n'existe pas une solution pour reprendre un transfert de fichier à distance et le tout de manière cryptée ?
# AMHA
Posté par doublehp (site web personnel) . Évalué à 1.
si tu as acces ssh, tu peut segmenter le fichier avec split, et blocs de taille connue, tout ce que tu as a faire, c est continuer le dl au premier bloc cheveauchant avec la ou tu en est actuellement ...
pour reconstruire, cat block* > file
apres avoir splitte aussi le block deja DL, afin que sa taille locale corresponde avec la taille des blocks remotes, et que l alignement se fasse sans PB.
C est chaud a expliquer en 2 lignes a 6h du mat, mais mathematiquement ca marche:
ton fichiers fait 10. le dl a bloque a 5. tu coupes en blocks de 2 le bout local et le fichier remote.
le block local 3e est donc enacheve; tu le jette, et tu reprend le dl au bloc distant 3e, jusqu au 5e.
une fois les 3 manquant ramenes:
cat block* > file
[^] # Re: AMHA
Posté par Anonyme . Évalué à 1.
Ta solution à base de tronçonneuse split / cat est valable et je pense qu'elle devrait fonctionner sans trop de soucis. Mais je la trouve un peu lourde pour un problème qui n'est pas rare je pense.
Et puis relis mon post...
Comme tu peux le voir j'avais envisagé de faire ce que tu me suggère, mais en dernier recours ! :)
Merci !
# rsync over ssh
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
[^] # Re: rsync over ssh
Posté par Anonyme . Évalué à 1.
Peut-être que rsync doit estimer que les différences sont trop nombreuses (fichier "mutilé") pour se contenter de rapatrier seulement les parties manquantes...
# ssh + http ou https
Posté par B. franck . Évalué à 1.
les 2 machines.
[^] # Re: ssh + http ou https
Posté par Anonyme . Évalué à 1.
Merci !
[^] # Re: ssh + http ou https
Posté par Krunch (site web personnel) . Évalué à 2.
http://www.psc.edu/networking/projects/hpn-ssh/(...)
J'ai aussi fait un paquet pour Debian Sarge (pas testé): http://users.skynet.be/bs244610/ssh_3.8.1p1-8.sarge.3.dynwin.1_i386(...)
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.