philippewang.info

Transferts de fichiers

Vous connaissez SCP (copie via SSH) ? Vous connaissez RSYNC (rsync via rsync ou bien rsync via ssh) ? Vous connaissez Unison (un rsync plus avancé) ?

Bon, alors si c'est non, voici un résumé

  • SCP : copie sécurisée, pas forcément très performante mais c'est simple comme CP
  • RSYNC : copie avec possibilité de ne pas transférer ce qui existe déjà sur la machine réceptrice
  • UNISON : comme rsync mais possibilité de synchronisation dans les 2 sens

Introduisons TAR+SSH

tar c source1 source2 source3 | ssh destination tar xv

et TAR+GZIP+SSH

tar cz source1 source2 source3 | ssh destination tar xzv

Et voici TAR+NC

nc -l 9000 | tar xv # à exécuter sur la destination
tar c source1 source2 source3 | nc destination 9000 # à exécuter sur la machine source
9000 peut être remplacé par presque n'importe quelle valeur > 1024 (pour peu qu'elle ne soit pas trop grande et qu'elle ne tombe pas pile sur un port déjà utilisé)

tar+nc peut théoriquement aussi être utilisé dans l'autre sens (dans la pratique c'est moins évident) :
tar c source1 source2 source3 | nc -l 9000 # sur la source
nc source 9000 | tar xv # sur la destination

tar+gzip+nc est assez facile, il suffit d'ajouter z aux options de tar
Bzip2 dans l'affaire ?
Il vaut mieux éviter tar+bzip2 car bzip2 est optimisé pour le taux de compression, pas pour la rapidité (par rapport à gzip). Pour un transfert sur réseau, bzip2 ferait inutilement chauffer les CPU.
À l'heure où la santé de notre planète est en danger, on peut bien essayer d'éviter de consommer de l'énergie pour rien du tout...

Alors, quel intérêt de connaître tout ça ?

Euh... pas grand intérêt. Il faut bien être un peu geek au moins de temps en temps quand on est informaticien :-P Plus sérieusement...
  • SCP : peu performant, pas de gestion des droits (ni chown ni chmod)
  • RSYNC : plus performant que SCP et souvent c'est l'idéal
  • UNISON : je n'ai toujours pas testé en fait...
  • TAR(+GZIP)+SSH : gestion des droits (et de tout ce qui est géré par TAR), efficacité, peu verbeux (voire pas du tout si on ne met pas l'option v), mais quand c'est dans un réseau local, la couche SSL de SSH est généralement consommatrice pour rien...
  • TAR(+GZIP)+NC : comme TAR(+GZIP)+SSH mais sans SSL (SSL peut réduire le débit par un facteur de 2 à 5 facilement)

À propos de FTP

  • FTP demande d'installer un serveur (et les mots de passes transitent en clair). FTP est très mauvais pour transférer beaucoup de fichiers (c'est bien pour transférer un ou deux gros fichiers, pas pour transférer un HOME DIRECTORY par exemple). La gestion des droits (chmod et chown) est ignorée.
  • FTPS permet d'utiliser SSL.
  • SFTP (sorte de FTP via SSH) est du SCP avec une interface à la FTP.

Les vrais inconvénients de TAR(+GZIP)+NC ?

  • Il faut utiliser 2 terminaux au lieu d'un seul
  • On gagne en taux de transfert par rapport aux solutions avec chiffrement SSL, mais NC est super mal codé ! Pardon pour les auteurs de NC, mais les performances sont vraiment mauvaises sans raison apparente... Oui je le recoderai quand je trouverai la motivation...
DD (commande pour “convertir et copier un fichier”) est aussi mauvais en performances sans raison apparente...
NC est connu oralement sous le nom de NET CAT, puisqu'il s'agit en effet d'une version réticulaire de la commande CAT.
2009-01-29

:: philippewang.info ::

:: design & photos by Philippe Wang :: XHTML 1.1 :: CSS 2 :: RSS 2 :: stats :: contact ::
:: Best viewed with Safari or Opera or Firefox or Links :: No SPAM Please ::
 
This page was generated on Thu Mar 20 19:41:11 GMT 2014 by BashGXD