====== backuppc ======
[[backuppc]] est une des solutions possibles de [[doc:sauvegarde]].
* [[Anomalies]] (et contournements)
* [[Anomalies à corriger]].
====== Installation ======
===== Installation sur Debian sarge =====
# aptitude install backuppc
Viennent en dépendances (au moins) :
backuppc libarchive-zip-perl perl-suid samba-common smbclient wwwconfig-common
==== Questions debconf ====
(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.
==== Configuration de backuppc (debconf) ====
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 ».
===== Installations pour ssh+rsync =====
# aptitude install libfile-rsyncp-perl
====== Configuration ======
===== Déplacement du répertoire de sauvegarde =====
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
===== Envoi de courriels avec exim4 =====
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 [[/etc/backuppc/config.pl|config]] par défaut est :
$Conf{EMailFromUserName} = 'backuppc';
$Conf{EMailAdminUserName} = 'backuppc';
===== Optimisation =====
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
===== Accès de l'utilisateur backuppc à rsync par sudo =====
Le but est d'éviter un passage par ssh (inutile) pour la sauvegarde locale de la machine locale (quand cela est pertinent).
(Selon [[http://backuppc.sourceforge.net/faq/ssh.html#how_can_client_access_as_root_be_avoided|la FAQ officielle]].)
# aptitude install sudo
Modification de ///etc/sudoers// (par ''visudo'') de la façon suivante :
backuppc ALL=NOPASSWD: /usr/bin/rsync
===== Clefs ssh sans phrases de passe =====
La porte ouverte à tous les dangers. Pour appliquer la méthode Xfer ssh+rsync.
(Selon [[http://backuppc.sourceforge.net/faq/ssh.html#how_do_i_setup_openssh|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.
===== Exclus de sauvegarde =====
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' ];
===== Gentil partout =====
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]]).
==== Pour la méthode Xfer ssh+rsync ====
$Conf{RsyncClientCmd} = 'nice -n 19 $sshPath -q -x -l root $host nice -n 19 $rsyncPath $argList+';
==== Pour la méthode Xfer sudo+rsync ====
$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).
===== Messages en français =====
(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.
====== Déploiement ======
Pour ajouter une nouvelle machine :
* créer son //nomdemachine.pl// ;
Pour moi, dans le répertoire ///etc/backuppc// (par exemple) :
# ln -s ssh+rsync nomdemachine.pl
* l'introduire dans [[/etc/backuppc/hosts]].
===== Installation de la clef de backuppc (ssh+rsync) =====
En tant qu'utilisateur ''backuppc'' :
$ ssh-copy-id -i /var/lib/backuppc/.ssh/BackupPC_id_rsa.pub root@nomdemachine
==== Vérification ====
Notamment que rsync est aussi présent sur l'autre poste.
$ ssh -l root nomdemachine rsync --version
====== Ressources ======
* Sauvegarde « exponentielle » : http://backuppc.sourceforge.net/faq/BackupPC.html#item__conf_fullkeepcnt_
===== Fichiers de configuration =====
* [[/etc/backuppc/config.pl]]
* [[/etc/backuppc/hosts]]
* [[/etc/backuppc/nomdemachine.pl]]
===== Autres ressources =====
* La [[http://backuppc.sourceforge.net/faq/BackupPC.html|FAQ officielle]].
* Une [[http://dossier.univ-st-etienne.fr/criter/public/backuppc/backuppc.pdf|doc en pdf]] de Saint-Étienne.
* Une [[http://www.klipz.fr/tutoriel_backuppc.html|doc de Fabien Germain]].
==== Diverses ====
* http://www.debianhelp.co.uk/backuppc.htm
* https://help.ubuntu.com/community/BackupPC
* http://wiki.yobi.be/wiki/BackupPc
* http://didier.misson.net/blog/2008/05/24/backuppc-installation-et-configuration/
===== rsync et ssh sur Windows =====
* Le paquet [[http://www.itefix.no/phpws/index.php?module=announce&ANN_user_op=view&ANN_id=34|cwrsync]] (aussi [[http://www.itefix.no/phpws/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=6&MMN_position=23:23|ici]]), probablement pour //Cygwin rsync//, recommandé par [[http://yann.morere.free.fr/article.php3?id_article=74|Yann Morere]] a l'air intéressant.