BackupPC sur Debian Squeeze
De wikiGite
Sommaire
- 1 Installation
- 2 Paramétrage
Installation
apt-get install backuppc
Bien noter le mor de passe de l'utilisateur "backuppc" créé à l'installation ! Il est modifiable avec
htpasswd /etc/backuppc/htpasswd backuppc
Vérifier la connexion à la console web par http://server.domain.tld/backuppc.
L'arborescence de configuration est un peu confuse :
- Les binaires sont dans /usr/share/backuppc, avec un répertoire conf et un fichier config.pl qui ne semblent pas pris en compte
- la config globale et par host est dans /etc/backuppc
- les sauvegardes se font dans /var/lib/backuppc/pc
Paramétrage
Génération des clés
Pour sauvegarder des hôtes linux par rsync via ssh, il faut générer une clé sur le serveur de sauvegarde
su - backuppc ssh-keygen -t dsa
copier le contenu de /var/lib/backuppc/.ssh/id_dsa et le coller dans /root/.ssh/authorized_keys sur le serveur à sauvegarder.
Paramétrage global
Dans l'interface web, paramétrer le serveur de sauvegarde (menu de gauche, Server / Edit config) :
- En premier lieu, dans l'onglet CGI, passer la langue en français (fr) puis dans le menu Admin options recharger l'interface.
- ajouter le(s) host(s) à sauvegarder (onglet Machines). Laisser "backuppc" comme utilisateur (pour RSYNC notamment, le compte "root" est passé dans la ligne de commande (voir RsyncClientCmd). Pour TAR voir plus bas).
- indiquer la méthode de sauvegarde par défaut (onglet Xfer - cette méthode pourra ensuite être modifiée individuellement pour chaque host)
- Configurer le destinataire des mails d'admin (un mail valide (admin@domain.tld) dans EMailAdminUserName) dans l'onglet Courriel, pourra aussi être modifié individuellement. laisser EMailUserDestDomain vide si les mails ne sont destinés qu'a un seul mail admin.
- vérifier les chemins des utilitaires (onglet Serveur)
Tester les mails
Pour être sûr que BackupPc réussit à envoyer des mails à partir du serveur de sauvegarde, on peut tester l'envoi :
# su - backuppc $/usr/share/backuppc/bin/BackupPC_sendEmail -u <admin destinataire des mails>@domain.tld
BackupPC n'envoie que des mails d'erreurs. Pour envoyer un mail à chaque sauvegarde, on peut créer un script /var/lib/backuppc/mailadmin.sh
#!/bin/bash MAIL_ADMIN=<Mail de l'admin> if [ $1 -eq 0 ] then (date echo "Sauvegarde BackupPC" )| mail -s "ERREUR BACKUP SUR $2 $(date +%d/%m)" $MAIL_ADMIN else (date echo "Sauvegarde BackupPC" )| mail -s "Sauvegarde $2 $(date +%d/%m) terminee" $MAIL_ADMIN fi
Sans oublier le
chmod 755 /var/lib/backuppc/mailadmin.sh
Et dans la configuration globale, onglet paramètres de sauvegarde, ajouter un script post backup
DumpPostUserCmd -> /var/lib/backuppc/mailadmin.sh $xferOK $host
Paramétrage des sauvegardes
Pour chaque host (en le sélectionnant dans la liste déroulante, puis "Modifier la configuration", onglet Xfer), indiquer les répertoires à sauvegarder ( RsyncShareName si RSYNC est choisi comme méthode de sauvegarde), éventuellement les répertoires à exclure (BackupFilesExclude).
Exclusions
Attention la syntaxe des exclusions est spéciale dans l'interface :
- La "clé" représente le "RsyncShareName" auquel doit s'appliquer l'exclusion
- un clic sur "ajouter" affiche à droite de cette clé un nouveau tableau dans lequel on mettra les fichiers ou sous-répertoires à exclure.
Exemple si le répertoire sauvegardé est /etc et qu'on veut exclure /etc/acpi, la clé sera "/etc" et dans le tableau qui s'affiche à droite on ajoutera /acpi.
Sauvegarde du serveur de sauvegarde
Par défaut une sauvegarde TAR du répertoire /etc/du serveur local est programmée. C'est une bonne idée, sauf que tar lancé par l'utilisateur backuppc n'a pas assez de droits pour sauvegarder certains fichiers protégés du système...
Première chose à faire : en sélectionnant le host "localhost", dans Xfer modifier :
TarClientCmd -> /usr/bin/sudo LC_ALL=C $tarPath -c -v -f - -C $shareName+ --totals
Note : le "LC_ALL=C" est très important pour que les messages renvoyés par TAR soient en anglais donc interprétables par BackupPC !
Puis lancer visudo (apt-get install sudo si le programme nexiste pas) ajouter à la fin du fichier :
backuppc ALL = NOPASSWD: /bin/tar
Déplacement du répertoire de sauvegarde
Le répertoire par défaut sur Debian est /var/lib/backuppc.
Ce chemin ne peut pas facilement être modifié dans le logiciel (la modification du TopDir dans Config.pl ne suffit pas, le chemin est également compilé en "dur" dans les modules Perl de BackupPc...).
Le plus simple pour le modifier est :
- si on reste sur le même disque dur, de créer un lien symbolique vers le nouveau répertoire,
- si on souhaite utiliser un autre disque, de copier son contenu vers ce disque et de monter celui-ci sur /var/lib/backuppc.
Planification
Dans BackupPC on ne paramètre pas les horaires de départ des sauvegardes, mais on indique les horaires auxquels les sauvegardes ne DOIVENT PAS être lancées. Ce paramètre peut être mis par défaut dans la configuration globale, ou modifiée pour chacun des hosts. Ensuite, le programme se débrouille pour planifier les sauvegardes dans ces fenêtres de temps.
Malheureusement ça n'empêche pas les backups à des heures non voulues (en pleine journée, par exemple) car le programme peut en lancer selon les conditions (un défaut de ping qui réinitialise le compteur BlackoutGoodCnt, par exemple...).
Pour éviter des sauvgardes en journée, on peut l'empêcher de "se réveiller" pour planifier des sauvegardes. Dans ce cas modifier dans l'onglet "Serveur" :
WakeupSchedule -> 22, 23, 1, 2, 3, 4, 5, 6
Le premier chiffre est l'heure de réveil de BackupPC_nightly, qui conditionne tous les autres.
Autre méthodde pour forcer une planification, on peut utiliser CRON. Explications complètes ici :
http://sourceforge.net/apps/mediawiki/backuppc/index.php?title=Schedule_Backups_With_Cron
Dans ce cas, les sauvegardes ayant lieu à des heures régulières, backuppc n'en re-planifie pas d'autres par lui-même.
Rétention
On peut jouer sur la rétention des sauvegarde selon un nombre de sauvegardes FULL à garder. C'est assez bien expliqué ici :
http://sourceforge.net/apps/mediawiki/backuppc/index.php?title=Keep_yearly_backups
Script PRE/POST backups
Dans "paramètres de sauvegarde" pour chaque host, on peut indiquer un script à lancer avant ou après la sauvegarde. Par exemple, pour lancer un dump MySQL avant la sauvegarde, on mettre
$Conf{DumpPreUserCmd} -> $sshPath -q -x -l root $host /usr/bin/dumpMysql.sh
/usr/bin/dumpMysql.sh étant un script utilisant mysqldump.
TIP : Récupération d'une sauvegarde existante
Exemple : le serveur SERVER1 a déjà été sauvegardé par rync ou rdiff-backup sur une autre machine, SERBERBACKUP. On veut récupérer cette sauvegarde parce que contrairement à SERVER1, SERVERBACKUP est sur le réseau local, ça ira donc plus vite pour la première full !
On commence par paramétrer SERVERBACKUP dans backuppc, et on sauvegarde les répertoires concernés. par exemple :
/backup/SERVER1/home
On trouve donc à la fin de la sauvegarde sur backuppc un répertoire :
/var/lib/backuppc/pc/SERVERBACKUP/0/f%2fbackupf%2fSERVER1f%2fhome
On renomme le répertoire /var/lib/backuppc/pc/SERVERBACKUP
mv /var/lib/backuppc/pc/SERVERBACKUP /var/lib/backuppc/pc/SERVER1
Puis le répertoire f%2fbackupf%2fSERVER1f%2fhome :
mv /var/lib/backuppc/pc/SERVER1/0/f%2fbackupf%2fSERVER1f%2fhome /var/lib/backuppc/pc/SERVER1/0/f%2fhome
Il reste à renommer la machine SERVERBACKUP par SERVER1 dans l'interface (Modifier les machines) et ô magie : on a une sauvegarde de /home de SERVER1 !
ATTENTION : renommer la machine remet la configuration (natamment Xfer) par défaut ! Bien vérifier les paramètres après renommage.