J'ai sauvegardé un serveur Web Linux en utilisant rsync avec cygwin. J'ai maintenant une copie parfaite du serveur sur mon ordinateur portable Windows. Si je supprime ou modifie un fichier sur mon ordinateur portable et réexécute rsync avec cygwin, supprimera-t-il/mettra-t-il à jour le même fichier sur le serveur? Im sous l'impression que si je supprime/modifie sur le serveur et exécute rsync sur mon ordinateur portable, il supprimera/modifiera le fichier local sur mon ordinateur portable mais cela fonctionne-t-il en sens inverse?
Rsync effectue une synchronisation unidirectionnelle, mais c'est à vous de décider de la direction de la synchronisation.
La syntaxe de la commande Rsync est la suivante:
rsync [OPTION...] SRC... [DEST]
Notez que vous spécifiez la synchronisation de la source à la destination. La source et la destination peuvent être n'importe quel chemin local ou distant.
Par exemple, si vous souhaitez copier des fichiers de votre serveur vers votre ordinateur portable, vous devez:
rsync [OPTION...] <server-path> <laptop-path>
Pour synchroniser dans la direction opposée, vous effectuez:
rsync [OPTION...] <laptop-path> <server-path>
Donc, pour répondre à votre question: cela dépend de la façon dont vous exécutez rsync.
Si vous souhaitez que les fichiers soient supprimés sur la destination, vous devez utiliser l'option --delete
. Mais soyez prudent avec cela, car si vous faites une erreur en spécifiant votre source, vous finirez par tout supprimer sur votre destination. Il est plus sûr de tester votre synchronisation sans l'option --delete
En premier et une fois que vous êtes satisfait de son fonctionnement, vous pouvez ajouter l'option --delete
.
Comme suggéré par masegaloeh dans les commentaires ci-dessous, l'option -n
Ou --dry-run
Peut également être utilisée pour tester le comportement de la commande rsync
.
Un outil wrapper écrit en python3 appelé bsync
qui enveloppe la commande find
et rsync
simplifie la tâche. Dépôt Github: https://github.com/dooblem/bsync
N'ayez pas peur quand il est sur github (c'est-à-dire d'une manière que vous pensez que vous devez être programmeur pour utiliser l'outil).