logo université de Strasbourg logo CNRS logo INSA Strasbourg logo ENGEES

Service informatique

BackupPC

De Service informatique
Aller à la navigation Aller à la recherche

Présentation

BackupPC est un logiciel libre écrit en PERL qui permet de sauvegarder différents postes, sous Linux, Unix, Mac Os X ou Windows. BackupPC peut utiliser différents protocoles: SMB (Server Message Block) avec samba, rsync, tar (Tape ARchive) via SSH (Secure SHell), RSH (Remote SHell) ou NFS (Network File System).

BackupPC est hautement configurable, beaucoup d'options vous sont proposées, tant au niveau des données à sauvegarder qu'au niveau de leur fréquence ou encore de l'historique des sauvegardes à conserver.

Dans le cadre des sauvegardes incrémentielles, BackupPC utilise des liens physiques vers les fichiers qui n'ont pas été modifiés ; ce qui vous garanti un accès à l'intégralité de vos données depuis une sauvegarde incrémentielle sans augmenter l'espace disque requis.

Installation

Sur Debian Etch (4.0)

apt-get install backuppc

Nécessite, entre autres, apache apache-common apache2-utils backuppc libarchive-zip-perl libcompress-zlib-perl perl-suid samba-common smbclient wwwconfig-common

Samba

Demande Nom de Domaine: Tech
Modifier smb.conf pour utiliser les paramètres WINS fournis par DHCP ? Non

Backuppc

Création de l'utilisateur par défaut pour l'administration Web.


BackupPC peut être géré avec une interface Web: http://MACHINE/backuppc/

A cet effet, un utilisateur web nommé « backuppc » a été créé. Son mot de passe est actuellement « yEk5GRUO ». Vous pouvez changer ce mot de passe avec la commande:

htpasswd /etc/backuppc/htpasswd backuppc


j'ai dû relancer un dpkg-reconfigure backuppc pour rendre active l'interface web de backuppc.

???

Configuration de backuppc

Pour que l'interface d'administration web de Backuppc fonctionne correctement,
j'ai besoin d'ajouter une ligne dans votre configuration d'apache qui va
activer quelques alias. Si vous ne faites pas confiance aux modifications
automatiques, vous pourrez ajouter vous-même un « include » du fichier
/etc/backuppc/apache.conf plus tard.

Ajouter un alias pour /backuppc/ dans votre configuration d'apache ? <Oui>

Par défaut, backuppc sauvegarde le répertoire /etc de la machine sur lequel il est installé.

libfile-rsyncp-perl

Pour utiliser rsync vua ssh il faut libfile-rsyncp-perl

apt-get install  libfile-rsyncp-perl

sinon on a l'erreur:

dump failed: File::RsyncP module doesn't exist

Espace de sauvegarde

Utilisation d'un deuxième disque pour la sauvegarde

cfdisk /dev/sdb


New (Create new partition from free space)
Primary (Create a new primary partition)
Size => Tout le disque choix par défaut
Write
Yes
Quit

 mkfs.reiserfs /dev/sdb1

Rajout de la ligne

/dev/sdb1     /var/lib/backuppc reiserfs defaults    0      2

à /etc/fstab

Déplacement de l'espace de sauvegarde

On peut éviter cette étape si on crée l'espace de stockage /var/lib/backuppc sur le second disque avant

/etc/init.d/backuppc stop
cd /var/lib
mv backuppc/ backuppc.old
mkdir backuppc
chmod 750 backuppc
chown backuppc:backuppc backuppc
mount /var/lib/backuppc
cd backuppc.old
tar cv * |(cd ../backuppc; tar xvf -)  Pour conserver les liens physiques
/etc/init.d/backuppc start

Passage Sur lsiit-b - Stephane - 30/11/07

J'ai migré la backup sur lsiit-b pour ne pas pénaliser les perf de lsiit-a.

Mais comme lssit-b est serveur web de secours de lsiit-a. Je ne peux pas démarrer normalement apache pour backuppc donc J'ai créé un démon apache2-backuppc qui écoute sur le port 8080 pour backuppc.

Tout est fait via cfengine.

Il reste un pb de warning quand cfengine copie des liens symboliques du serveur sur lsiit-b. J'ai donc mis un infor=false qd cfengine copie le répertoire /etc/apache2-cfengine.

Configuration

/etc/backuppc/hosts

Fichier définissant la liste des machines à sauvegarder

host               dhcp    user     moreUsers     # <--- do not edit this line
localhost          0       backuppc
wilde              0       backuppc
lsiit-a            0       backuppc frey,muller

La première colonne correspond au nom d'hôte.
La seconde spécifie si DHCP doit être activé pour la recherche de l'hôte.
La troisième colonne indique l'utilisateur "propriétaire" de l'hôte,
la quatrième et dernière les utilisateurs supplémentaires.
Pour chaque hôte, les utilisateurs listés dans ce fichier ainsi que l'administrateur pourront via l'interface d'administration lancer la sauvegarde et la récupération des données.
Chaque utilisateur nommé ici doit exister dans le fichier des utilisateurs (dans notre cas /etc/backuppc/htpasswd).

/etc/backuppc/config.pl

Fichier général de configuration. Chaque variable pouvant être modifiée ensuite dans un fichier spécifique pour chaque client /etc/backuppc/machine.pl

Options de configuration choisies

  • $Conf{BackupFilesOnly} = ['/etc/', '/var', '/home', '/boot'];
  • $Conf{BackupFilesExclude} = ['/var/cache', '/var/lib/backuppc', '*.nobackup', '*/tmp', '*.mp3', '*.avi', '*.m4a', '*.ogg', '*.vob', '*.mov', '*.o', '.Trash*', '*/Desktop/Trash*', '*TMP', '*.svn', 'firefox/*/Cache']; + cas particuliers à revoir '*/*Maxil*o', '/home/miv/brucher/local', '/home/technique/pruniere/Sauvegarde'
  • $Conf{XferMethod} = 'rsync'; rsync via ssh (pas de démon rsyncd sur les clients)
  • $Conf{RsyncClientCmd} = '$sshPath -C -x -l root -o StrictHostKeyChecking=no -o PreferredAuthentications=publickey $host $rsyncPath $argList+';
  • $Conf{RsyncClientRestoreCmd} = '$sshPath -C -q -x -l root $host $rsyncPath $argList+';
    • -o StrictHostKeyChecking=no pour ne pas avoir la question Are you sure you want to continue connecting à la première connection ssh
    • voir option -q et -C
  • $Conf{ArchiveComp} = 'bzip2';
  • $Conf{EMailAdminUserName} = 'pruniere@lsiit.u-strasbg.fr';
  • $Conf{EMailUserDestDomain} = '@lsiit.u-strasbg.fr';
  • $Conf{Language} = 'fr';
  • $Conf{CgiDateFormatMMDD} = 0; Pour avoir la date au format DD/MM
Autres options (choix par défaut)
  • $Conf{ServerHost} = `hostname`; nom du serveur de sauvegarde
  • $Conf{WakeupSchedule} = [1..23]; heures de réveil du serveur. La valeur 1..23 (par défaut) signifie que le serveur s'éveillera toutes les heures excepté à minuit (0)
  • $Conf{BackupPCUserVerify} = 1; la valeur par défaut (1) force le script à vérifier que le serveur est lancé par l'utilisateur spécifié dans la directive $Conf{BackupPCUser}. Cela permet d'éviter que le script du serveur soit exécuté par un utilisateur non autorisé (par exemple root)
  • $Conf{BackupPCUser} = 'backuppc';
  • $Conf{RsyncShareName} = ['/']; système(s) de fichiers à sauvegarder en utilisant les méthodes 'rsync' et 'rsyncd' A Voir si je mets ici /home et /var
  • $Conf{FullPeriod} = 6.97; périodicité de sauvegarde complète des hôtes
  • $Conf{IncrPeriod} = 0.97; périodicité de sauvegarde incrémentielle des hôtes
  • $Conf{FullKeepCnt} = 2; nombre de sauvegardes complètes à conserver. A revoir
  • $Conf{BlackoutPeriods} = [ { hourBegin => 7.0, hourEnd => 19.5, weekDays => [1, 2, 3, 4, 5],},]; configuration du blackout. Le blackout correspond aux périodes durant lesquelles le serveur ne se réveillera pas automatiquement. Ici, la période de blackout est définie de 7 heures à 19 heures 30 pour tous les jours de la semaine (lundi (1) à vendredi (5))
  • $Conf{XferLogLevel} = 1; degré de verbosité. Plus le degré sera élevé, plus le fichier de log sera complet. Il peut être utile d'augmenter cette valeur pour un hôte donné qui pose des problèmes
  • $Conf{ArchiveComp} = 'bzip2'; méthode de compression à utiliser pour la sauvegarde. Cette valeur peut être 'none', 'gzip' ou 'bzip2'
  • $Conf{CompressLevel} = 3; taux de compression tel que renseigné lors de l'exécution du script configure.pl. Le taux peut prendre une valeur de 0 à 9, reportez vous à la documentation de backuppc et de zlib pour plus d'informations. La valeur 3 est généralement un bon choix.
  • $Conf{EMailNotifyMinDays} = 2.5; période minimale durant laquelle un utilisateur ne recevra pas de mails. La valeur par défaut (2.5) signifie que l'utilisateur ne recevra qu'un message tous les trois jours au maximum
  • $Conf{EMailFromUserName} = 'backuppc'; adresse de l'expéditeur. Les emails envoyés prendront en champ from la valeur indiquée ici. Il est possible d'indiquer le nom d'utilisateur ou l'adresse email complète en fonction de la configuration de votre serveur mail

/etc/backuppc/Machine.pl

Une bonne partie des valeurs par défaut du fichier /etc/backuppc/config.pl peuvent être écrasées par les valeurs contenues dans les fichiers /etc/backuppc/Machine.pl spécifique à chaque machine

/etc/backuppc/localhost.pl

Par défaut, backuppc fait une sauvegarde du répertoire /etc de la machine localhost avec la méthode tar. Mais cette sauvegarde ne fonctionne plus dès que l'on modifie la valeur $Conf{BackupFilesOnly} dans le fichier config.pl. Si on veut conserver cette sauvegarde, il faut rajouter au fichier localhost.pl la ligne

$Conf{BackupFilesOnly} = undef;

Ssh

Lorsqu'on utilise la méthode rsync, il faut configurer ssh pour que l'utilsateur backuppc puisse se connecter sur les machines à sauvegarder à l'aide de clefs publiques/privées.

Donc sur le serveur de backup

sudo bash
chown bacluppc:backuppc /var/lib/backuppc
su - backuppc
ssh-keygen -t rsa

=> pas de passphrase

Puis

scp .ssh/id_rsa.pub root@machineA: 
ssh root@machineA 
cat id_dsa.pub >> .ssh/authorized_keys2 & rm id_rsa.pub & exit

Ensuite l'utilisateur backuppc du serveur de sauvegarde peut se connecter en root sur la machine machineA sans mot de passe.

Pour augmenter la sécurité de l'ensemble on peut rajouter from="@IP du serveur de backup" au début de notre ligne contenant la clef publique sur le poste client. Ce qui donne

from="@IP serveurBackuppc" ssh-rsa AAAA[...]fw==  backuppc@serveurBackuppc

Dans le cas où l'on automatise la copie des clefs publiques sur les clients, la première connexion pas ssh se soldera par un échec car il faut répondre à la question Are you sure you want to continue connecting. D'où l'option -o StrictHostKeyChecking=no dans le fichier de configuration /etc/backuppc/config.pl Autre solution, automatiser la copie du fichier .ssh/known_hosts (A voir)

Changement des mots de passe

à faire sur le serveur cfengine (càd sur lsiit):

htpasswd  /etc/cfengine2.conf/conf/etc/backuppc/htpasswd USER

ensuite propagation du mot de passe sur lsiit-a et lsiit-b

Consultation des sauvegardes

Sur poste Windows

2 manière de sauvegarder un poste windows avec backuppc.

  • à l'aide d'un partage samba sur un réseau local
  • à l'aide de rsync

avec Rsync

Il faut installer rsync sur le poste windows. On peut le trouver sur sourceforge et j'en ai fait un fichier .zip pour qu'il soit déjà préconfiguré: Cygwin-rsyncd-2-6-8_0-lsiit.zip‎ ‎

  1. Créer un compte root/algo
  2. Extraire cygwin-rsyncd-2.6.8_0-lsiit.zip vers C:Rsyncd
  3. Modifier rsyncd.conf
  4. Laisser passer ping (ICMP autoriser echo entant) et rsyncd (TCP 873) sur le par-feu windows
  5. Exécuter cmd : service.bat

Machines dans le réseau adm

Si le ping (donc aussi les sauvegardes) ne passent plus vers les machines du réseau administratif c'est que la route est peut-être "tombée" donc sur lsiit-a:

ip route add 130.79.218.0/23 dev eth0 via 130.79.91.254 src 130.79.90.9


à Faire

- revoir fichiers de configuration de chaque machine

lsiit merinis domis watershed reglis geodisi saucis tetris oasis stagis advansis indigo lsiitsp alkindi danny aramis elia fodomust kia mapcoqis hitormiss sangria coqsis wilde lsiit-a lsiit-b gouache kagan satie lsiit-miv giotto wharol angelico sysley bouraoui estimesi laika nutshell

- rajouter machine supplémentaire dans le backup (coqsis, sysley, satie, kanabis, bouraoui, oasis, reglis, kia, pastis, merinis)

- relire doc backuppc

- voir Mail Sylvain

- mail utilisateurs de chaque machine pour savoir quoi backuper. sauvegarde lsiit-a et lsiit-b sur autre serveur backuppc

- fichier par défaut pour linux, 1 fichier windows unique

- perte de la route via interface virtuelle pour les machines de l'administration (ip route add 130.79.218.0/23 dev eth0 via 130.79.91.254 src 130.79.90.9)

- Sauvegarde mac maison

- disques 500go

- raid matériel

(StrictHostKeyChecking no pour accepter clef ssh al première fois)

- mail all@lsiit

- voir de plus près tout le fichier de config


- Voir avec Sylvain Faisan la sauvegarde de gouache

- voir la gestino des mails à partir de l'interface web

- voir différence entre $Conf{RsyncShareName} et $Conf{BackupFileOnly}

- voir option rsync: --one-file-system

- Utiliser rsync avec agent ssh plutôt que des passphrases sans mot de passe (ttp://bruno.vernay.free.fr/HowTo/backuppc/)

- changer root en utilisateur particulier sur chaque client ????

- mailing list backuppc ?

- Faire sauvegarde sur lsiit-b dans un répertoire /srv avec un client apache spécifique. (ttp://bruno.vernay.free.fr/HowTo/backuppc/) pour avoir 2 serveurs de sauvegardes. sur lsiit-a: les serveurs et certaines machines (linux) sur lsiit-b: les suerveurs et d'autres machines (windows et mac)

- plutôt utiliser agents ssh que ssh sans passpharases

- modifiern Client TimeOut à 14400

- backkuppc en https


backuppc sur lsiit-b sur un port particulier pour le web

- revoir fichiers de configuration de chaque machine -> lsiit-rupp, mapcoqis, pleiade, pruniere.org, sansoucis

- rajouter machine supplémentaire dans le backup (coqsis, sysley, satie, kanabis, bouraoui, oasis, reglis, kia, pastis, merinis)

- relire doc backuppc

- mail utilisateurs de chaque machine pour savoir quoi backuper. sauvegarde lsiit-a et lsiit-b sur autre serveur backuppc

- fichier par défaut pour linux, 1 fichier windows unique

- perte de la route via interface virtuelle pour les machines de l'administration (ip route add 130.79.218.0/23 dev eth0 via 130.79.91.254 src 130.79.90.9)

- Sauvegarde mac maison

- disques 500go

- raid matériel

(StrictHostKeyChecking no pour accepter clef ssh al première fois)

- mail all@lsiit

- voir de plus près tout le fichier de config


- Voir avec Sylvain Faisan la sauvegarde de gouache

- voir la gestino des mails à partir de l'interface web

- voir différence entre $Conf{RsyncShareName} et $Conf{BackupFileOnly}

- voir option rsync: --one-file-system

- Utiliser rsync avec agent ssh plutôt que des passphrases sans mot de passe (ttp://bruno.vernay.free.fr/HowTo/backuppc/)

- changer root en utilisateur particulier sur chaque client ????

- mailing list backuppc ?

- Faire sauvegarde sur lsiit-b dans un répertoire /srv avec un client apache spécifique. (ttp://bruno.vernay.free.fr/HowTo/backuppc/) pour avoir 2 serveurs de sauvegardes. sur lsiit-a: les serveurs et certaines machines (linux) sur lsiit-b: les suerveurs et d'autres machines (windows et mac)

- revoir configuration fichier Windows (cDrive, @IP autorisé, ...)

- Wiki X/Stra

Liens utiles