GNU/Linux >> Tutoriels Linux >  >> Linux

Comment copier rapidement un grand nombre de fichiers entre deux serveurs

Solution 1 :

Je recommanderais le goudron. Lorsque les arborescences de fichiers sont déjà similaires, rsync effectue très bien. Cependant, étant donné que rsync effectuera plusieurs analyses sur chaque fichier, puis copiera les modifications, il est beaucoup plus lent que tar pour la copie initiale. Cette commande fera probablement ce que vous voulez. Il copiera les fichiers entre les machines, tout en préservant les autorisations et les propriétés des utilisateurs/groupes.

tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'

Selon le commentaire de Mackintosh ci-dessous, il s'agit de la commande que vous utiliseriez pour rsync

rsync -avW -e ssh /path/to/dir/ remote_server:/path/to/remotedir

Solution 2 :

Disque dur externe et livraison par coursier le jour même.

Solution 3 :

J'utiliserais rsync.

Si vous les avez exportés via HTTP avec des listes de répertoires disponibles, vous pouvez également utiliser wget et l'argument --mirror.

Vous voyez déjà que HTTP est plus rapide que SCP car SCP chiffre tout (et donc goulot d'étranglement sur le CPU). HTTP et rsync vont aller plus vite car ils ne chiffrent pas.

Voici quelques documents sur la configuration de rsync sur Ubuntu :https://help.ubuntu.com/community/rsync

Ces documents parlent de la tunnellisation de rsync sur SSH, mais si vous ne faites que déplacer des données sur un réseau local privé, vous n'avez pas besoin de SSH. (Je suppose que vous êtes sur un réseau local privé. Si vous obtenez 9 à 10 Mo/sec sur Internet, je veux savoir quel type de connexion vous avez !)

Voici quelques autres documents très basiques qui vous permettront de configurer un serveur rsync relativement non sécurisé (sans dépendance à SSH) :http://transamrit.net/docs/rsync/

Solution 4 :

Sans trop discuter, utilisez netcat, le couteau suisse du réseau. Pas de surcharge de protocole, vous copiez directement sur le socket réseau.Exemple

srv1$ tar cfv - *mp3 | nc -w1 remote.server.net 4321

srv2$ nc -l -p 4321 |tar xfv -

Solution 5 :

Avec beaucoup de fichiers si vous utilisez rsync, j'essaierais d'obtenir la version 3 ou supérieure aux deux extrémités . La raison en est qu'une version inférieure énumérera chaque fichier avant de commencer le transfert. La nouvelle fonctionnalité s'appelle incremental-recursion .

Un nouvel algorithme de récursivité incrémentale est désormais utilisé lorsque rsync communique avec une autre version 3.x. Cela démarre le transfert plus rapidement (avant que tous les fichiers aient été trouvés) et nécessite beaucoup moins de mémoire. Voir l'option --recursive dans la page de manuel pour certaines restrictions.


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

  2. Comment copier en toute sécurité des fichiers entre des hôtes Linux à l'aide de SCP et SFTP

  3. Comment supprimer des fichiers créés entre deux fois ?

  4. Synchronisation bidirectionnelle en temps réel d'une grande arborescence de fichiers entre deux serveurs Linux distants

  5. Comment partager des ressources entre plusieurs serveurs Web ?

Comment déplacer un grand nombre de fichiers sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment synchroniser automatiquement des fichiers entre deux serveurs Linux

Comment copier des fichiers entre l'hôte et le conteneur Docker

Comment utiliser Rsync pour copier/synchroniser des fichiers entre des serveurs

Comment sauvegarder les fichiers crontab -e ?