2010-01-15 7 views
3

J'ai lu la documentation de rsync pendant quelques heures, mais je ne peux pas comprendre comment transmettre à rsync comment renommer seulement (et ne pas re-télécharger le dossier et c'est contenu) dossiers de destination quand ils sont renommés à la source.Rsynch et SSH: Renommer seulement le dossier quand renommé de la source

Je me connecte à la destination avec SSH et le dossier local est la source - et le serveur distant est la destination. Si je renomme un dossier contenant des fichiers, rsync télécharge automatiquement tout le contenu du dossier source. Je n'utilise pas la partie serveur de rsync, peut-être que ça fonctionnera si c'était le cas?

J'ai rencontré le même comportement avec lftp, et cet outil ne semble pas avoir ces options. Même si elle est basée sur la règle de date du fichier, les fichiers dans le dossier renommé sont supprimés/re-téléchargés.

Merci à l'avance si quelqu'un sait comment gérer cette :)

Répondre

1

Comment se rsync ou tout autre programme savoir ce qui constitue renommé? Que se passe-t-il si deux répertoires sont des candidats très similaires et en quelque sorte rsync devine peut-être que l'un ou l'autre pourrait être un changement de nom de ce qui s'est passé avant? Ce n'est pas possible. Je pense que vous êtes coincé avec tout télécharger à nouveau.

Vous savez sur l'option --delete, à droite:

--delete supprimer des fichiers qui n'existent pas sur le côté envoi

Notez également l'option --force:

- -force forcer la suppression des répertoires même s'ils ne sont pas vides

2

Je cherchais quelque chose de similaire.

jusqu'à présent, la meilleure solution que j'ai trouvé est à l'adresse:

http://serenadetoacuckooo.blogspot.com/2009/07/rsync-and-directory-renaming.html

Il mentionne essentiellement incluant une méta-fichier dans chaque dossier qui indique le nom du dossier.
Essentiellement, vous voulez vérifier ce fichier avec le nom du répertoire et rsync que si elles sont les mêmes (sinon, exécutez une commande de changement de nom à distance.)

Cela dépend de la portée de ce que vous utilisez rsync pour, mais j'espère que cette information peut vous aider.