Que fera exactement --delete-exclus pour rsync?

32

J'utilise rsync avec grand plaisir pour sauvegarder mes serveurs, même si j'ai une question sur le --delete-excludedparamètre.

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded     --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01

De man rsync:

 --delete-excluded       also delete excluded files from dest dirs

Pour moi, un natif non anglais, cela signifie que rsync supprimer des répertoires exclus du répertoire de destination réelle sur le serveur distant, donc si je /home/backupet /home/settingsdans mes exclude-dossiers, ces dossiers seraient effectivement supprimés du serveur distant ,.

De plusieurs autres ressources, il semble qu'il supprimera les fichiers du dossier de sauvegarde local afin d'économiser de l'espace. Par exemple, vous pouvez créer de petites sauvegardes sur le serveur lui-même et exclure ces données afin de ne pas gaspiller d'espace de stockage.

Il est vital pour moi que rsync ne fasse son travail que dans un sens car les gens disent qu'il est censé fonctionner, je ne veux pas prendre de risques en ayant un logiciel qui supprime les fichiers / répertoires sur le serveur distant.

ujjain
la source

Réponses:

37

Votre interprétation est correcte. Si vous avez exclu des fichiers ou des répertoires du transfert, --delete-exclus les supprimera du côté destination (il ne doit pas nécessairement s'agir du "serveur distant", vous pouvez utiliser rsyncpour copier d'un serveur vers l'ordinateur local) si il les y trouve. Par exemple, si vous utilisez --exclude=*.o --delete-excluded, si rsync trouve des fichiers se terminant par .o du côté destination, il les supprimera, qu'ils existent ou non dans le répertoire source.

DerfK
la source
1
Il supprimera donc les répertoires / fichiers de /.snapshot/hourly.0/server01 et non le serveur distant?
ujjain
3
@chronoz Si vous copiez du serveur distant vers l'ordinateur local, la destination est l'ordinateur local. Si vous copiez de l'ordinateur local vers le serveur distant, la destination est le serveur distant. La destination est ce qui est important ici. Si la destination est le serveur distant, il supprimera les fichiers du serveur distant.
DerfK
Confirmation ici: comentum.com/rsync.html
SDsolar
1
J'ai récemment découvert que "--delete-exclus" est complètement équivalent à "--delete --delete-exclus". Dans l'exemple de réponse fourni ci-dessus, les fichiers distants qui ne sont pas présents du côté source seront également supprimés.
Wayne