(ɔ) CC-SA ↄ⃝

Transférer des fichiers entre deux ordinateurs Linux

Le mail ? Impossible quand la taille est trop importante (des Go).

La commande scp ? Implique d’activer ssh, de créer sa paire de clés, d’ouvrir le firewall

La commande rsync ? Elle est bien cette commande, mais là aussi faut sortir l’artillerie !

Le partage NFS ? Bon là, ça se complique 😦

La commande netcat ? Oui 🙂

La machine destination écoute le port 4444
et détarre ce qu’elle reçoit
nc -l 4444 | tar x
La machine source tarre les fichiers
et les envoient sur le port 4444
de la machine destination (192.168.44.44)
tar c fichiers | nc 192.168.44.44 4444

On peut aussi réduire la bande passante en ajoutant à la commande tar l’option -z (gzip), ou l’option -j (bzip2) qui compresse mieux mais nécessite plus de ressources CPU.

    Sur les distributions récentes, je conseille les options :

  • --lzop –> Compression presque aussi bonne que gzip, mais nécessite moins de ressources CPU et mémoire 🙂
  • --xz –> Compression de folie (un peu plus que bzip2) mais consomme un max de ressources CPU et mémoire !

Donc choisir le bon niveau de compression selon le goulet d’étranglement : ressources CPU/Mémoire ou bande passante réseau.

Attention, plusieurs implémentations de netcat existent. J’utilise la version fournie par Ubuntu 12.04 qui est celle d’OpenBSD. La ligne de commande est quelquefois différente, exemple : -l -p 4444 au lieu de -l 4444

Leave a comment