GNU/Linux >> Tutoriels Linux >  >> Linux

Meilleur moyen de transférer des fichiers sur un réseau local entre deux ordinateurs Linux

Dans un environnement Linux, pour la sécurité et la facilité d'utilisation, ssh est la meilleure solution. SSH, SSHFS, SCP et SFTP comme vous l'énumérez ne sont que des services différents construits sur le protocole SSH. SCP est très facile à utiliser, il fonctionne comme CP mais vous pouvez fournir des noms d'utilisateur et de machine dans le chemin. Donc, nous pourrions faire un CP comme cp ~/music/ ~/newmusic/ , mais on pourrait tout aussi bien faire scp ~/music/ [email protected]:~/newmusic pour l'envoyer à l'ordinateur nommé host. C'est tout - nous n'avons rien à configurer. Vous serez invité à entrer le mot de passe du compte sur l'autre machine si vous n'avez pas de certificat ou une autre configuration d'authentification (scp partage ces paramètres avec ssh, bien sûr).

SFTP est un outil qui facilite l'exécution de nombreuses opérations sur un système de fichiers distant - il fonctionne comme FTP, mais il fonctionne via SSH, il est donc sécurisé et ne nécessite qu'un serveur SSH. man sftp vous dira tout sur son utilisation. Je n'utilise pas SFTP uniquement pour déplacer un dossier entre deux machines, c'est plus utile lorsque vous avez beaucoup d'opérations à faire, comme si vous réorganisez des fichiers sur un autre ordinateur.

SSHFS étend simplement SFTP dans un système de fichiers :il vous permet de monter un hôte virtuel dans votre système de fichiers, de sorte que le réseau se déroule de manière totalement transparente. SSHFS est destiné aux configurations semi-permanentes, et pas seulement à un transfert de fichiers ponctuel. La configuration demande un peu plus d'efforts, vous pouvez en savoir plus sur le site Web du projet.

Si vous devez travailler dans un environnement à système d'exploitation mixte, Samba devient votre prochain meilleur pari. Windows et OS X prennent en charge Samba de manière entièrement automatique, et Linux le fait aussi bien qu'il soit parfois difficile à utiliser.


Mon préféré pour les cas où la sécurité n'a pas d'importance est netcat + tar :

Pour envoyer un répertoire, placez-vous dans le répertoire dont vous souhaitez envoyer le contenu sur l'ordinateur effectuant l'envoi et faites :

tar -cz . | nc -q 10 -l -p 45454

Sur l'ordinateur recevant le contenu, cd jusqu'à l'endroit où vous souhaitez que le contenu apparaisse et faites :

nc -w 10 $REMOTE_HOST 45454 | tar -xz

Remplacer $REMOTE_HOST avec ip / hostname de l'ordinateur effectuant l'envoi. Vous pouvez également utiliser un port différent au lieu de 45454 .

Ce qui se passe réellement ici, c'est que l'ordinateur 'récepteur' se connecte à l'ordinateur expéditeur sur le port 45454 et reçoit le contenu tar'd et gzip'd du répertoire, et le transmet directement à tar (et gzip) pour l'extraire dans le répertoire courant.

Exemple rapide (en utilisant localhost comme hôte distant)

Ordinateur 1

[email protected]:~/nctest/a/mydir$ ls
file_a.txt  file_b.log
[email protected]:~/nctest/a/mydir$ tar -cz . | nc -q 10 -l -p 45454

Ordinateur 2

[email protected]:~/nctest/b$ ls
[email protected]:~/nctest/b$ nc -w 10 localhost 45454 | tar -xz
[email protected]:~/nctest/b$ ls
file_a.txt  file_b.log

Pour les déplacements ponctuels, scp est recommandé.

Mais si vous trouvez que ce répertoire peut fonctionner et que vous devez le déplacer plusieurs fois pour maintenir l'autre position à jour, vous pouvez utiliser rsync (avec ssh).

Étant donné que rsync a beaucoup d'arguments, je le mets généralement dans un petit shell pour bien faire les choses (à chaque fois). L'idée est de n'envoyer que les éléments qui ont changé depuis la dernière exécution.

#!/bin/bash

user="nisse"
host="192.168.0.33"

echo "Sync: /home/media/music/"
rsync --archive --delete -v --progress -e "ssh -l $user " /home/media/music/ $host:/home/media/music/

Cela déplacera un répertoire appelé "/home/media/music/" de l'ordinateur local vers le PC appelé 192.168.0.33, en utilisant l'utilisateur "nisse". Et supprimez tout ce qui n'existe pas sur le PC local sur la cible.


Linux
  1. Transférer en toute sécurité des fichiers et des dossiers entre ordinateurs à l'aide de Croc

  2. Comment transférer des fichiers entre serveurs sous Linux à l'aide de SCP et FTP

  3. Les meilleurs outils de transfert de fichiers sur Linux

  4. Meilleur moyen de transférer des fichiers sur un réseau local entre deux ordinateurs Linux

  5. Quel est le moyen le plus rapide de combiner deux fichiers ou plus sous Linux ?

Transférer des fichiers et des dossiers entre ordinateurs avec Croc

Transférer des fichiers entre ordinateurs et appareils mobiles en scannant des codes QR

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

4 façons de transférer des fichiers entre des systèmes distants et locaux via SSH

Comment transférer facilement des fichiers entre des bureaux Linux avec Warp

Différence d'espace entre deux fichiers sous Linux