web-dev-qa-db-fra.com

Transférer environ 300 Go dans des fichiers d'un serveur à un autre

J'ai environ 200 000 fichiers que je transfère sur un nouveau serveur aujourd'hui. Je n'ai rien fait à une telle échelle auparavant et je voulais obtenir des conseils sur la manière dont je devrais y aller. Je les déplace entre deux Centos 6 Distros, et ils sont à différents endroits du pays. Je n'ai pas assez d'espace disque dur sur le serveur d'origine pour couvrir tous les répertoires et les fichiers en une massive d'archives, alors ma question est de savoir comment devrais-je transférer tous ces fichiers? rsync? une manière particulière d'utiliser rsync? Toute entrée/suggestions sur la façon de faire ce serait incroyable.

Merci

Edit: Pour ceux qui se demandent, je suggère fortement d'utiliser un screen lors de l'exécution d'une grande commande rsync comme ceci. Surtout lorsque quelque chose d'idiot peut se produire et que vous perdez la connexion au serveur A pour lequel vous exécutez la commande rsync de. Ensuite, il suffit de détacher l'écran et de le reprendre plus tard.

20
MasterGberry

Juste pour éliminer Simon Réponse , rsync est l'outil idéal pour le travail:

   Rsync  is  a  fast  and extraordinarily versatile file copying
   tool.  It can copy locally,  to/from  another  Host  over  any
   remote  Shell,  or to/from a remote rsync daemon.  It offers a
   large number of options  that  control  every  aspect  of  its
   behavior  and permit very flexible specification of the set of
   files to be copied.  It is famous for its delta-transfer algo‐
   rithm,  which reduces the amount of data sent over the network
   by sending only the differences between the source  files  and
   the  existing  files in the destination.  Rsync is widely used
   for backups and mirroring and as an improved copy command  for
   everyday use.

En supposant que vous avez un accès SSH à la machine distante, vous voudrez faire quelque chose comme ceci:

rsync -hrtplu path/to/local/foo [email protected]:/path/to/remote/bar

Cela copiera le répertoire path/to/local/foo à /path/to/remote/bar sur le serveur distant. Un nouveau sous-répertoire nommé bar/foo sera créé. Si vous voulez seulement copier le contenu d'un répertoire, sans créer de répertoire de ce nom sur la cible, ajoutez une barre oblique suivante:

rsync -hrtplu path/to/local/foo/ [email protected]:/path/to/remote/bar

Cela copiera le contenu de foo/ dans le répertoire distant bar/.

Quelques options pertinentes:

 -h,                         output numbers in a human-readable format 
 -r                          recurse into directories
 -t, --times                 preserve modification times
 -p, --perms                 preserve permissions
 -l, --links                 copy symlinks as symlinks
 -u, --update                skip files that are newer on the receiver
 --delete                    delete extraneous files from dest dirs
 -z, --compress              compress file data during the transfer
 -C, --cvs-exclude           auto-ignore files in the same way CVS does
 --progress                  show progress during transfer
 --stats                     give some file-transfer stats
24
terdon

Cela dépend de la rapidité avec laquelle il doit être copié et de la quantité de bande passante disponible.

Pour une connexion réseau médiocre, considérez la bande passante d'un camion rempli de bandes. (Lire: Mail a le disque dur de 2,5 pouces, ou tout simplement le conduire là-bas. 300 Les lecteurs Gigabit doivent être faciles à trouver).

S'il est moins de temps critique ou que vous avez beaucoup de bande passante, alors rsync est génial. S'il y a une erreur, vous pouvez simplement continuer sans ré-copier les fichiers antérieurs.

[EDIT] J'ai oublié d'ajouter que vous pouvez exécuter RSYNC plusieurs fois si vos données sont utilisées lors de la copie.

Exemple:
[.____] 1) Données utilisées. Rsync -> Toutes les données sont copiées. Cela peut prendre un certain temps.
[.____] 2) Exécutez à nouveau RSYNC, seuls les fichiers modifiés sont copiés. Cela devrait être rapide.

Vous pouvez le faire plusieurs fois jusqu'à ce qu'il n'y ait pas de modification, ou vous pouvez le faire de manière intelligente/sûre en effectuant les données en lecture seule pendant la copie. (E.G. S'il s'agit d'un ensemble partagé par partage utilisé qui partagé uniquement en lecture seule. ou RSYNC Les données, alors la nuit définissent la lecture en lecture seule pendant que vous l'exécutez une seconde fois).

14
Hennes

J'irais pour rsync! Je l'utilise pour sauvegarder mon serveur sur un serveur hors site et cela fonctionne bien. Habituellement, il y a quelques mbs à copier, mais quelques jours, il y a jusqu'à 20-30 Go et il fonctionnait toujours sans problème.

6
Simon

première utilisation NFS et TAR/ENTAR (NFS est le protocole le plus rapide dans ce cas, goudron pour sauvegarder la bande passante de réseau par plus d'utilisation de la CPU)

tar cf - * | ( cd /target; tar xfp -)

prochaine heure/s Utilisez RSYNC

0
jet