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