GNU/Linux >> Tutoriels Linux >  >> Linux

Comment transférer rapidement des fichiers volumineux sur le réseau sous Linux et Unix

Aujourd'hui, j'ai dû réinstaller mon serveur Ubuntu que j'utilise souvent pour tester différentes applications. Mon serveur Ubuntu contient plus de 200 Go de données et je ne veux pas les perdre. Je peux transférer ces données via scp ou configurer NFS, FTP pour copier des fichiers, mais je suis presque sûr qu'il faudrait des heures pour transférer des fichiers aussi volumineux. En cherchant une méthode alternative, je suis tombé sur la méthode suivante. Nous pouvons rapidement transférer des fichiers volumineux entre deux systèmes sur le réseau en utilisant netcatgoudron , et vp commandes dans tous les systèmes d'exploitation GNU/Linux et de type Unix. Contrairement à d'autres méthodes, je trouve cela très rapide et rapide. Pour ceux qui ne connaissent pas, Netcat est un simple utilitaire Unix qui lit et écrit des données sur des connexions réseau à l'aide du protocole TCP ou UDP. goudron est un outil d'archivage en ligne de commande, et pv , signifie Pipe Viewer, est utilisé pour surveiller la progression des données. Maintenant, permettez-moi de vous montrer comment transférer rapidement des fichiers volumineux entre deux systèmes Linux. Ce n'est pas aussi difficile que vous le pensez. Continuez à lire.

Télécharger - Ebook gratuit :"6 outils de ligne de commande Linux utiles pour les administrateurs système"

Transférer rapidement des fichiers volumineux sur le réseau entre deux systèmes sous GNU/Linux

Assurez-vous d'avoir installé les utilitaires "netcat" et "pv" sur vos systèmes. S'ils ne sont pas déjà installés, vous pouvez les installer comme indiqué ci-dessous. Le package "tar" est disponible par défaut sur la plupart des systèmes Linux, vous n'avez donc pas à l'installer.

Sur Arch Linux et ses dérivés :

$ sudo pacman -S netcat pv

Sur RHEL, CentOS, Fedora :

$ sudo yum install epel-release
$ sudo yum install nc pv

Ou,

$ sudo dnf install nc pv

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt-get install netcat pv

Voyons maintenant comment copier rapidement le(s) fichier(s) volumineux entre deux systèmes.

Pour ce faire, exécutez la commande suivante en tant que root utilisateur sur le nœud de réception (système de destination) :

# netcat -l -p 7000 | pv | tar x

Sur le nœud d'envoi (système source), exécutez cette commande en tant que root utilisateur :

# tar cf - * | pv | netcat 192.168.1.105 7000

Ici, 192.168.1.105 est mon système de destination. tar cf - * copiera tout dans le répertoire de travail actuel vers le système de destination, et les fichiers seront extraits à l'autre bout.

Remarque : Sur les systèmes RHEL et CentOS, utilisez "nc" au lieu de "netcat" comme indiqué ci-dessous. Et, vous devez ajouter le port "7000" à iptables / firewall-cmd sur le système cible.

Après avoir ajouté le port sur le système cible, vous pouvez transférer les fichiers plus volumineux comme indiqué ci-dessous.

Sur le système de destination :

# nc -l -p 7000 | pv | tar x

Sur le système source :

# tar cf - * | pv | nc 192.168.1.105 7000

Vous pouvez également spécifier un fichier particulier comme ci-dessous.

# tar cf - /home/sk/test.file | pv | netcat 192.168.1.105 7000

N'oubliez pas que les deux systèmes doivent avoir installé netcat . Maintenant, prenez une tasse de café. Vous verrez que les fichiers seront copiés très rapidement par rapport aux méthodes traditionnelles comme scp.

De plus, vous ne verrez aucun signe de l'achèvement du transfert de fichiers des deux côtés. Ces commandes continueront à s'exécuter jusqu'à ce que vous les arrêtiez manuellement. Vous devez vérifier manuellement la taille des fichiers sur les deux systèmes à l'aide de "du -h " commande. Si la taille du fichier dans le système de destination est la même que dans le système source, vous pouvez supposer que le processus de transfert de fichier est terminé et quitter la commande en appuyant sur CTRL+C .

Transférer rapidement des fichiers volumineux entre deux systèmes sous Unix

Sur les systèmes d'exploitation Unix, netcat est appelé comme nc. Ainsi, pour copier des fichiers volumineux entre des systèmes sur le réseau, la commande serait :

Sur le système de destination :

# nc -l 7000 | pv | tar -xpf -

Sur le système source :

# tar -cf - * | pv | nc 192.168.1.105 7000

Encore une fois, ces commandes doivent être exécutées en tant que root utilisateur. Et, les systèmes source et destination doivent avoir netcat et pv installés. Le transfert de fichiers volumineux sur le réseau local à l'aide de netcat et de tar peut en effet vous faire gagner beaucoup de temps.

Avis de non-responsabilité : Veuillez noter qu'il n'y a aucune sécurité dans cette méthode . Parce que, comme vous le voyez dans les exemples ci-dessus, il n'y a pas d'authentification de part et d'autre. Tout ce que vous devez savoir est l'adresse IP du système de destination. Le transfert de fichiers à l'aide de netcat n'est recommandé qu'à l'intérieur de réseaux protégés . Si vous êtes paranoïaque à propos de la sécurité, je vous suggère fortement d'utiliser scp commande.

Si votre sécurité est si importante pour vous, vous pouvez utiliser Rsync pour transférer des fichiers en toute sécurité.

$ rsync -ravz /path/to/source/files/ destination-ip:/path/on/destiny

Merci :Ppnman

C'est ça. Connaissez-vous un autre moyen de copier rapidement des fichiers volumineux ? Veuillez le partager dans la section des commentaires ci-dessous.


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Comment configurer le serveur SAMBA et transférer des fichiers entre Linux et Windows

  3. Comment trouver des fichiers volumineux Linux avec les commandes find et du

  4. Linux – Répertoires standard et/ou communs sur les systèmes Unix/linux ?

  5. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

Comment installer Rclone sous Linux et Unix

Comment configurer une adresse IP statique sous Linux et Unix

Comment servir rapidement des fichiers et des dossiers via HTTP sous Linux

Comment transférer des fichiers entre Dropbox et Google Drive avec Rclone sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux