Aller au contenu principal

RSYNC --Options "delete" et "exclude"

 

Options --delete et --exclude

 

Les options --delete et --exclude (à noter le double tiret) sont très utiles dans les cas où il existe déjà une copie de sauvegarde sur l’ordi de destination et si l’on procède à une synchronisation à intervalles réguliers.


L’option --delete supprime sur l’ordi de destination les fichiers et répertoires qui n’existent plus sur l’ordi source. Donc, si on a effacé un fichier dans un répertoire de l’ordi source faisant l’objet d’une synchronisation, il sera automatiquement effacé de l’ordi de destination. Pratique, mais aussi dangereux, car si on efface un fichier ou un répertoire par accident, il finira aussi par être effacé sur l’ordi de destination, à moins de pouvoir le récupérer AVANT la synchronisation!

L’option --exclude permet d’exclure des fichiers ou des répertoires de la synchronisation. Elle doit être mentionnée pour chaque élément différent à exclure. Par exemple, si on veut exclure les répertoires « Documents » et « Musique » et le fichier « linux.txt », il faudra procéder ainsi :

# rsync -avz --exclude ‘linux.txt’ --exclude ‘Documents’ --exclude ‘Musique’ source/ destination/

Si les répertoires et fichiers sont trop nombreux, rendant ainsi la lecture de la commande à exécuter un peu difficile, on peut utiliser l’option --exclude-from qui renvoit rsync à une liste de répertoires et/ou fichiers à exclure. Pour reprendre l’exemple ci-dessus, on pourrait créer un fichier texte appelé exclusions.txt contenant un élément par ligne (ici, on suppose que la source est le répertoire de l’utilisateur) :

# exclusions.txt

# Fichiers et répertoires à exclure de la synchronisation



 

linux.txt

Documents

Musique

La commande sera donc la suivante :

# rsync -avz --exclude-from ‘exclusions.txt’ source/ destination/

 

Avec l’option --delete, cela donnera :

rsync -avz --exclude-from ‘exclusions.txt’ --delete source/ destination/