backuppc est une des solutions possibles de sauvegarde.
# aptitude install backuppc
Viennent en dépendances (au moins) :
backuppc libarchive-zip-perl perl-suid samba-common smbclient wwwconfig-common
(Probablement samba-common.)
Q1 : « Samba Server » me demande « Groupe de travail et nom de domaine ? ». Je laisse vide.
Q2 : Il me demande aussi si je veux chiffrer les mots de passe : Je laisse le « oui » par défaut.
Q3 : « Modifier smb.conf pour utiliser les paramètres WINS fournis par DHCP ? ». Je laisse le « non » par défaut.
Q : « Ajouter un alias pour /backuppc/ dans votre configuration d'apache ? ». Oui (choix par défaut). J'utilise apache2 qui est déjà installé.
En fait, il ajoute la ligne
Include /etc/backuppc/apache.conf
dans /etc/apache2/httpd.conf.
NB : « Création de l'utilisateur par défaut pour l'administration Web » (il s'agit de backuppc). Remarques :
BackupPC peut être géré avec une interface Web : http://localhost.localdomain/backuppc/
Il me donne le mot de passe de l'utilisateur backuppc sur la machine local. Ce mot de passe est critique car backuppc aura plus tard l'accès root sur les machines qu'il sauvegarde.
Vous pouvez changer ce mot de passe avec la commande « htpasswd /etc/backuppc/htpasswd backuppc ».
# aptitude install libfile-rsyncp-perl
Les sauvegardes seraient conservées (par défaut) dans /var/lib/backuppc/ que je remplace par un répertoire de mon choix (ici /var/local/unique/backuppc/).
# invoke-rc.d backuppc stop # mv /var/lib/backuppc /var/local/unique # ln -s /var/local/unique/backuppc /var/lib/backuppc # invoke-rc.d backuppc start
J'ajoute dans /etc/email-addresses :
# Pour backuppc. backuppc: Frederic.Lehobey.PRO@free.fr
pour que les messages puissent partir de la machine car la config par défaut est :
$Conf{EMailFromUserName} = 'backuppc'; $Conf{EMailAdminUserName} = 'backuppc';
Minimiser les accès disques en montant la partition de sauvegarde sans marquer les horodatages (backuppc n'en a pas besoin).
Rappel : l'option default (man mount) dans fstab tient pour rw, suid, dev, exec, auto, nouser, et async.
Je modifie donc dans mon /etc/fstab :
/dev/sda1 /var/local/unique ext3 rw,nosuid,nodev,noexec,auto,nouser,async,noatime 0 2
Le but est d'éviter un passage par ssh (inutile) pour la sauvegarde locale de la machine locale (quand cela est pertinent).
(Selon la FAQ officielle.)
# aptitude install sudo
Modification de /etc/sudoers (par visudo
) de la façon suivante :
backuppc ALL=NOPASSWD: /usr/bin/rsync
La porte ouverte à tous les dangers. Pour appliquer la méthode Xfer ssh+rsync.
(Selon la FAQ officielle.)
Création de la clef ssh de l'utilisateur backuppc :
# su - backuppc $ ssh-keygen -t rsa
Avec les choix par défaut :
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_rsa): Enter passphrase (empty for no passphrase):
$ cp ~/.ssh/id_rsa.pub ~/.ssh/BackupPC_id_rsa.pub
La 3e étape n'est pas nécessaire, c'est juste mnémotechnique et pour faire comme la doc de la FAQ.
Sur les systèmes GNU/Linux, exclusion des répertoires /proc, /sys /mnt et /media.
Par sécurité, j'exclus aussi la sauvegarde des trousseaux secrets de gpg (secring.gpg).
Et, par convention personnelle, j'exclus les répertoires /var/local/unique (données non sauvegardées).
Ce qui donne une ligne à mettre dans les /etc/backuppc/poste.pl (cela marche avec la méthode Xfer rsync) :
$Conf{BackupFilesExclude} = [ '/proc', '/sys', '/var/local/unique', 'secring.gpg', '/mnt', '/media' ];
Nous allons être gentil aussi bien sur la machine sauvegardée que sur la machine de sauvegarde. Ce qui donne les paramétrages suivants (à mettre dans /etc/backuppc/nomdemachine.pl).
$Conf{RsyncClientCmd} = 'nice -n 19 $sshPath -q -x -l root $host nice -n 19 $rsyncPath $argList+';
$Conf{RsyncClientCmd} = 'nice -n 19 sudo $rsyncPath $argList+';
NB : il y a aussi la commande
$Conf{RsyncClientRestoreCmd} = 'sudo $rsyncPath $argList+';
qui est concernée par sudo
(mais qui n'est pas ici gentille).
(Auxquels j'ai contribué.)
Dans /etc/backuppc/config.pl, je mets :
# Currently the Language setting applies to the CGI interface and email # messages sent to users. Log files and other text are still in English. # $Conf{Language} = 'fr';
NB : Il n'y a donc pas de négociation de contenu. Ce serait un truc sympa pour l'avenir.
Pour ajouter une nouvelle machine :
Pour moi, dans le répertoire /etc/backuppc (par exemple) :
# ln -s ssh+rsync nomdemachine.pl
En tant qu'utilisateur backuppc
:
$ ssh-copy-id -i /var/lib/backuppc/.ssh/BackupPC_id_rsa.pub root@nomdemachine
Notamment que rsync est aussi présent sur l'autre poste.
$ ssh -l root nomdemachine rsync --version