mardi 19 juin 2012

sauvegarde en arrière-plan avec rsync et crontab

Afin d'éviter l'utilisation d'une application avec une interface graphique pour les sauvegardes, il est possible de  créer une tâche crontab qui lance rsync.

Les avantages sont d'un côté que, au moment de la sauvegarde, on n'est pas dérangé et de l'autre que le rafraîchissement de l'interface graphique ne nous bouffe pas une bonne partie de la performance.

L'inconvénient est que, en cas d'erreur, on n'a pas de message. Il faut donc consulter les logs régulièrement.



La commande rsync

Vu la complexité de la chose, quelques explications par la suite: 

rsync -r -t -p -o -g --delete -l -H -z -s --exclude-from=/home/utilisateur/exclude_rsync.txt /home/utilisateur /media/destination/sauvegarde

-r  = récursif, la sauvegarde inclut ainsi les sous-répertoires
-t  = time, garde la date et l'heure du dernier changement des fichiers
-p = permissions, garde les autorisations pour les fichiers
-o = owner, garde le propriétaire des fichiers
--delete = supprimer les fichiers aussi sur la sauvegarde
-H  = hardlinks, garder les liens en dur
-z  = comprimer les données durant le transfer
-s  = no space-splitting, accepter des noms de fichier avec des espaces
--exclude-from  = liste de fichiers/dossiers à ignorer

Ensuite vient le chemin du dossier à sauvegarder, puis le chemin de destination. Pour plus d'informations, consultez la man-page.

Créer la commande crontab

Afin d’ajouter une tâche, ouvrez une console et entrez la commande:

crontab -e
Si vous lancez crontab pour la première fois, vous serez invité à choisir votre éditeur préféré (nano, vi, ...)

Sur une nouvelle ligne entrez la commande:

15 12 * * * /usr/bin/rsync -r -t -p -o -g --delete -l -H -z -s --exclude-from=/home/utilisateur/exclude_rsync.txt /home/utilisateur /media/destination/sauvegarde

 Le format des tâches cron est:

minute (0-59), heure (0-23, 0 = minuit), jour (1-31), mois (1-12), jour de la semaine (0-6, 0 = Dimanche), commande

Les * signifient l'équivalent de "tous", donc dans la commande ci-dessus, rsync est lancé tous les jours de l'année à midi et douze minutes.

IMPORTANT:

- utilisez des chemins absolus pour les commandes (/usr/bin/rsync)
- la dernière commande dans crontab doit être suivie par une ligne vide

Aucun commentaire:

Enregistrer un commentaire