vendredi 19 octobre 2012

La sauvegarde avec rsync


Rsync est un outil qui peut être utilisé afin d'effectuer des sauvegardes. Il permet de synchroniser une source et une destination.

Je vais expliquer comment se servir de rsync afin de sauvegarder son arborescence sous Linux, inclure et exclure certain répertoire.

À titre d'exemple, le répertoire personnel contient les répertoires

Téléchargement
Musique
Bureau/
Modèles/
Public/
Vidéos/

en plus des répertoires invisibles

.Skype
.mozilla
.teamviewer
.kde
.local4

Rsync pour sauvegarder son répertoire personnel

# répertoire à sauvegarder
BDIR=/home/$USER

#destination
DEST=/media/verbatim

# donnée à exclure
EXCLUDES=/home/$USER/bin/exclude.txt

#donnée à inclure
INCLUDES=/home/$USER/bin/include.txt

#a signifie de garder les permissions(utilisateur, group), la date et les liens symboliques
#r signifie de copier les répertoires et leurs sous-répertoires
#v signifie d'affiché à l'écran ce qui est copié
rsync -arv --delete --prune-empty-dirs --include-from=$INCLUDES --exclude-from=$EXCLUDES  $BDIR $DEST

Fichier include.txt

+ .kde4/
+ .kde4/share/
+ .kde4/share/apps/
+ .kde4/share/apps/kmail/***
+ .Skype/***
+ .local/
+ .local/share/
+ .local/share/.local-mail.directory/***
+ .mozilla/***

Fichier exclude.txt

- .*
- Bureau/
- Modèles/
- Public/
- Vidéos/

Résultat

Les répertoires
  • Téléchargement
  • Musique
  • .skype
  • .kde4/share/apps/kmail/
  • .local/share/.local-mail.directory
et leurs contenus sont copiés.

Explication

Par défaut, tout est inclus. La liste d'exclusions surcharge cela en enlevant des fichiers, répertoires. La liste d'inclusions surcharge les exclus en incluant certains éléments de nouveau.

- .* signifie exclure tous les fichiers et répertoires invisibles
*** signifie de copie le répertoire et tous ses sous-répertoires et fichiers

Dans l'exemple ci-dessous,
+ .kde4/
+ .kde4/share/
+ .kde4/share/apps/
+ .kde4/share/apps/kmail/***

au niveau de kde4, share, apps, il y a une multitude de répertoire et de fichiers. Afin de pouvoir copié les données de kmail, l'arborescence de .kde4 à .kde4/share/apps/kmail/ doit être spécifié. Cependant, seul les données de kmail seront prises en compte à cause des ***.

Il peut donc être pénible si on désire que copier certains fichiers ou répertoires dans une grosse hiérarchie.

Sachant que les données de kopete sont dans le répertoire  .kde4/share/apps/kopete/ , il serait possible des incluses en ajoutant:  .kde4/share/apps/kopete/***.

Afin de sauvegarder les contacts sous kde, il faudrait faire

+ .local/
+ .local/share/
+ .local/share/contact/***

Nous avons vu au travers de ce billet une façon de sauvegarder son répertoire personnel avec rsync. Il est possible d'affiner notre sauvegarde en incluant ou excluant certains répertoire ou fichier.