Comment déplacer un répertoire d'un serveur à un autre?

10

J'ai un accès SSH aux deux serveurs, l'un d'eux est vide. Comment déplacer le répertoire du site de l'ancien serveur vers le nouveau serveur via une connexion SSH?

PS: sur les deux serveurs est unix

ajile
la source

Réponses:

15

Mon préféré est rsync. Il est suffisamment intelligent pour copier uniquement ce qui doit être copié (c'est-à-dire modifié ou nouveau).

rsync -avz /source/path user@desthost:/destination/path/

Notez la finale /à la fin pour demander à rsync de copier à l' intérieur de ce chemin (pas dessus).
rsyncs'occupe de gérer la connexion ssh pour vous. Les avzoptions (typiques) demandent rsyncd'utiliser le mode archive (tar), afin de copier récursivement, et de conserver autant que possible la date et les valeurs utilisateur. L' voption est détaillée pour vous montrer ce qui se passe actuellement. L' zoption compressera (compressera) le transfert pour, espérons-le, économiser du temps et de la bande passante.

rsync est très puissant et est utilisé par la plupart des professionnels, mais vous pouvez d'abord le tester en utilisant des données non précieuses pour vous assurer que le chemin et les options correspondent aux exigences.

Si vous devez utiliser rsync via SSH sur un port non standard comme 2222, vous pouvez utiliser la commande suivante ( voir cet article ):

rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/
Ø bague
la source
Je pense que rsync est une meilleure solution que ssh pour la raison que ring0 a donnée, c'est-à-dire qu'il ne copie que ce qui doit être copié. Donc, si vous avez besoin de faire cela plus d'une fois, rsync vous donnera un avantage sur scp direct.
Jason Tan
1
rsync est définitivement l'outil. Mais à propos de la barre oblique de fin: ceci est important pour la source et non pour la destination: rsync -a / src / / dest copie tout sous src dans dest, rsync -a / src / dest copie src et tout ce qui se trouve sous dest / src / .
Oscar