web-dev-qa-db-fra.com

rsync deux répertoires existants copiant tout

J'ai deux serveurs de fichiers à deux endroits. Actuellement, les deux données contiennent les mêmes données, qui ne sont généralement pas modifiées (utilisées pour un accès en lecture seule). Lorsque le deuxième serveur a été configuré (celui sur lequel je suis connecté), les données ont été copiées sur le réseau local et ont depuis été déplacées géographiquement.

J'essaie d'utiliser rsync pour la première fois sur les répertoires requis. Un exemple de commande;

Sudo rsync -avz --ignore-existing -P --dry-run /media/Storage/OSs/ user@mydomain:/mnt/Storage/OSs/

J'ai essayé d'utiliser -c -t -u (de plus, je suis allé sur le serveur distant et j'ai mis à jour les horodatages aujourd'hui) aussi, mais chaque fois que j'exécute un essai, il veut tout copier!

De plus, l'utilisateur est le même pour les deux machines avec le même UID.

*Modifier

Après avoir joué un peu plus, j'ai constaté que rsync n'aime pas les espaces dans les noms de sous-répertoires; Par exemple, si j'utilise 'pour échapper au shell local &\pour échapper au shell distant

Sudo rsync -avz --ignore-existant -P '/ media/Stockage/OS/Windows/Serveur Windows 2011 /' 'utilisateur @ mondomaine:/mnt/Stockage/OS/Windows/Windows\serveur\2011 /'

Alors tout va bien, ma théorie est que rsync n'aime pas les sous-répertoires avec des espaces. J'ai des milliers de sous-répertoires; la seule solution à laquelle je puisse penser est d'écrire un petit script python/Shell pour exécuter chaque sous-répertoire séparément, mais cela n'est pas souhaitable.

2
Alex

Il se trouve que j'aurais dû mordre la balle ... Le montage à blanc ne faisait que sortir les répertoires qu'il explore, mais pas les fichiers réels.

J'ai couru rsync pour de vrai et tout était ok, tout a été ignoré, à l'exception d'un ou deux nouveaux ajouts.

Pour référence cela a fonctionné;

Sudo rsync -avzs --ignore-existing --progress '/media/Storage/OSs/' 'User@MyDomain:/mnt/Storage/OSs/'
2
Alex