Tutorial, HowTo, How-To ...

N’étant jamais à l’abri d’une panne de disque dur, il est conseillé de faire des sauvegardes régulières, notamment de ses fichiers de configuration ;)

Le site http://troy.jdmz.net/rsnapshot/ propose une très bonne documentation sur le logiciel rsnapshot qui permet de faire des sauvegardes incrémentales [1] en utilisant rsync.

Cependant, l’article n’indique pas comment effectuer des sauvegardes de fichiers appartenant à l’utilisateur root (problème de droits d’accès en lecture). Il faut pour cela utiliser la commande ’sudo rsync’ mais il y a un "bug" dans rsnapshot avec le paramètre —rsync-path si l’argument contient des espaces (cf. la mailing-liste )

Modifications par rapport au tutorial de jdmz

  • Permettre à l’utilisateur "remoteuser" de lancer la commande "sudo rsync"

Taper en root :


# visudo

remoteuser   ALL = NOPASSWD: /usr/bin/rsync

- Solution 1 (modifier le script validate-rsync) :

Modifier le script /home/remoteuser/cron/validate-rsync, et rajouter "sudo" avant $SSH_ORIGINAL_COMMAND


rsync\ --server*)
               sudo $SSH_ORIGINAL_COMMAND

- Solution 2 (Utiliser le paramètre rsync_long_args du fichier rsnapshot.conf) :

  • Modifier le fichier /etc/rsnapshot.conf

rsync_long_args --delete --numeric-ids --relative --delete-excluded --rsync-path=/home/remoteuser/cron/sudo-rsync
  • Créer le script /home/remoteuser/cron/sudo-rsync

#!/bin/sh

sudo /usr/bin/rsync "$@"
  • Modifier le script /home/remoteuser/cron/validate-rsync

remplacer la ligne :


rsync\ --server*)
               $SSH_ORIGINAL_COMMAND

par la ligne suivante :


/home/remoteuser/cron/sudo-rsync\ --server*)
               $SSH_ORIGINAL_COMMAND

Outils complémentaires

Documentations


[1] cf. wikipedia