Modifications entre les versions 2 et 41 (s'étendant sur 39 versions)
Version 2 à la date du 2006-11-27 15:25:41
Taille: 4690
Éditeur: XavierFossouo
Commentaire:
Version 41 à la date du 2008-09-19 10:01:29
Taille: 15389
Commentaire: un petit sommaire
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:

Cette page décrit la mise en place d'un système de sauvegarde en utilisant Backuppc

http://backuppc.sourceforge.net/

== Côté serveur ==
installation: aptitude install backuppc

Vous pouvez alors accéder à l'interface d'administration de backuppc sur http://votre.serveur/backuppc

La configuration est simple, et porte essentiellement sur 2 fichiers situés dans /etc/backuppc:

  config.pl : Paramètres du serveur, et
  hosts : liste des machines à sauvegarde

Chez moi ca donne ceci:

A noter que je n'ai pas touché au config.pl global (/etc/backuppc/config.pl), qui est bon (du moins qui marche) par défaut.

{{{
$cat hosts
#
#========================================================================

#
# The first non-comment non-empty line gives the field names and should
# not be edited!!
#
host dhcp user moreUsers # <--- do not edit this line
#farside 0 craig jill,jeff # <--- example static IP host entry
#larson 1 bill # <--- example DHCP host entry
localhost 0 backuppc
192.168.100.2 0 backuppc root,fossouo
portable-xf.vpn-yaounde 0 xf #portable XF
admin-rezo.vpn-yaounde 0 fossouo #desktop XF
resp-formation.vpn-yaounde 0 administrateur #desktop WK
resp-cai.vpn-yaounde 0 administrateur #desktop RKF
resp-cnf.vpn-yaounde 0 administrateur #desktop AK
directeur.vpn-yaounde 0 administrateur #desktop LSM
sec-dir.vpn-yaounde 0 administrateur #desktop OM
sec-admin.vpn-yaounde 0 administrateur #desktop SD
bourse.vpn-yaounde 0 administrateur #desktop SRME
comptable.vpn-yaounde 0 administrateur #desktop CFS
admin-bureau.vpn-yaounde 0 administrateur #desktop BB

}}}

Le serveur Backuppc va alors créer des repertoires pour la sauvegarde de chaque pc dans /var/lib/backuppc/pc

{{{
$ls -l /var/lib/backuppc/pc
drwxr-x--- 3 backuppc backuppc 4096 2006-11-27 06:32 192.168.100.2
drwxr-x--- 6 backuppc backuppc 4096 2006-11-27 06:00 admin-bureau.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 11:00 admin-rezo.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 15:00 bourse.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-24 16:00 comptable.vpn-yaounde
drwxr-x--- 6 backuppc backuppc 4096 2006-11-27 15:00 directeur.vpn-yaounde
drwxr-x--- 11 backuppc backuppc 4096 2006-11-27 06:00 localhost
drwxr-x--- 2 backuppc backuppc 4096 2006-11-22 16:01 portable-xf.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-09 10:00 resp-cai.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 06:00 resp-cnf.vpn-yaounde
drwxr-x--- 2 backuppc backuppc 4096 2006-11-27 15:00 resp-formation.vpn-yaounde
drwxr-x--- 5 backuppc backuppc 4096 2006-11-27 15:00 sec-admin.vpn-yaounde
drwxr-x--- 3 backuppc backuppc 4096 2006-11-27 12:32 sec-dir.vpn-yaounde
}}}


Dès lors, il est possible de personnaliser la configuration de chaque poste, en créant dans le repertoire concerné un fichier "config.pl" personnalisé.

Un exemple de configuration pour un poste Windows avec le service rsync:

{{{
$cat /var/lib/backuppc/pc/directeur.vpn-yaounde/config.pl
#============================================================= -*-perl-*-
#
# Configuration file for Windows hosts.
# Note the slashes instead of backslashes
#

###########################################################################
# What to backup and when to do it
###########################################################################
#Tableau des répertoires à sauvegarder
#Tableau des répertoires exclus de la sauvegarde
$Conf{BackupFilesExclude} = ['/Documents and Settings/mbow/Local Settings/Temp', '/WINDOWS', '/WINNT', '/Program Files', 'QUARANTINE'];

###########################################################################
# General per-PC configuration settings
###########################################################################
#Nom NetBios de la machine
#$Conf{ClientNameAlias} = 'netbiosname';
#Méthode de sauvegarde utilisée
$Conf{XferMethod} = "rsyncd";
#Niveau de verbosité des fichiers de log
$Conf{XferLogLevel} = 1;
#Nom des partages à sauvegarder
$Conf{RsyncShareName} = ['eDrive', 'cDrive', 'dDrive'];
#Nom de l'utilisateur réseau
$Conf{RsyncdUserName} = "administrateur";
#Mot de passe de l'utilisateur réseau
$Conf{RsyncdPasswd} = "mot_de_passe_admin";
#Méthode de compression de la sauvegarde
$Conf{ArchiveComp} = 'bzip2';
}}}




== Côté client ==
Télécharger et installer le paquet
||<tablestyle="float:right; font-size: 0.9em; width:40%; background: #f0f0f0; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents>>||

BackupPC est le logiciel de sauvegarde adopté par l'AUF.

 ||<#fcca0c> '''CETTE PAGE EST À REFAIRE''' ||

Les procédures à écrire (liste non exhaustive) :

 * Installation de BackupPC sur Debian à l'AUF
 * Sauvegarde d'un serveur
 * Restauration d'un serveur
 * Particularités pour les serveurs virtuels (OpenVZ)
 * Sauvegarde d'un poste fixe
 * Sauvegarde d'un poste portable
 * Sauvegarde des sauvegardes, et restauration d'un serveur de sauvegarde






 ||<#fcca0c> '''Petit coup de pouce de la part de Roger''' ||
 ||<#fcca0c> '''JC, j'ai fini les modifs, la balle est dans ton camp ;-) ''' ||


= INSTALLATION DE BACKUPPC =


'''BackupPC''' est un logiciel très intéressant, très facile à installer, et à gérer et qui permet bien sûr de faire de bonnes sauvegardes de nos PCs. Aujourd'hui, le backup de nos machines notamment serveur de données est aussi (sinon même plus) important que la « sécurité » de ces machines. (Par exemple, si votre disque dur plante, vous avez beau avoir le meilleur firewall du monde, le meilleur IDS de la planète, vous êtes _ _ _).
Et BackupPC est un logiciel qui joue bien se rôle ; avec son interface WEB, et ces nombreuses méthodes de sauvegardes, il arrive à me satisfaire complètement. (Il faut reconnaître aussi que je suis pas un gars bien compliqué.)

Démarrons donc notre installation :


== 1- Installation : ==

Installation du serveur de base Debian Etch ou tout ce que vous voulez.
Paquets à rajouter :

'''apticron''' : pour les annonces de mises à jour

'''beep''' : pour pouvoir faire du bruit en cas de problème et alerter les gens

'''git''' : pour la gestion de changement de configurations

'''logcheck''' : checker les logs à la recherche de choses bizares

'''ntp''' : pour synchroniser l'heure

'''partimage''' : copie de partition, me permet de faire du backup de backup

'''rsync''' et '''libfile-rsyncp-perl''' +++: requis par notre méthode de sauvegarde des PCs (rsync)

'''snmpd''' : Surtout pour monitorer la partition qui sert de bakup

'''sshd''' +++: faire du SSH

'''sudo''' : pour faire du sudoers

'''tcpdump''' : faire de l'analyse de trafic quand c'est bizare

'''backuppc''' +++ : Rôle de la machine.


Les paquets marqués +++ sont obligatoires pour cette installation.

Sous Debian, les install de tous ces trucs se font avec : aptitude install <paquet>

Sous Redhat et autres Fedora et CentOS, essayer avec : yum install <paquet> // Pas testé


Donc installation très facile, très très facile.


== 2- Config de ce sympathique BackupPC : ==

Toute la config se trouve dans le répertoire '''/etc/backuppc/'''. Il faut donc commencer par s'y positionner. ''# cd /etc/backuppc/''

La config même sophistiquée n'est pas du tout compliquée, malgré la longueur du fichier principal de configuration. Et en général, les options par défaut sont tout à fait valides et marchent bien.

Donc, faisons un peu de customisation en ouvrant le fichier '''/etc/backuppc/config.pl'''

Changeons ces options :

{{{

$Conf{WakeupSchedule} = [1..24]; // Réveil toutes les heures de la journée

$Conf{MaxOldLogFiles} = 28; // L'âge max des logs

$Conf{DfMaxUsagePct} = 92; // à 92% de saturation de disque: ==> envoi de rapport, plus de backup régulier

$Conf{BackupPCUser} = 'backuppc';

$Conf{FullPeriod} = 13.97; // Full backup toutes les 2 semaines (par PC bien sûr)

$Conf{IncrPeriod} = 0.97; // Incrémental backup tous les jours

$Conf{FullKeepCnt} = 6; // 6 backup complets, or 1 backup complet toutes les 2 semaines , donc

$Conf{FullAgeMax} = 93; // Age maxi des backup-complet = 93 jours, donc plus de 3 mois

$Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours.

$Conf{IncrKeepCnt} = 15; // On garde 15 sauvegardes incrémentales, ce qui nous fait 15 jours

$Conf{IncrAgeMax} = 30; // 30 jours max pour l'âge de celles-ci

$Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge.

$Conf{BlackoutPeriods} = [
    {
        hourBegin => 7.5,
        hourEnd => 18.5,
        weekDays => [1, 2, 3, 4, 5],
    },

]; // En gros, la période où il faut pas faire trop de backup si les machines ne répondent pas bien aux pings. Le logiciel fait des pings périodiques et garde des statistiques. Il sait donc quand une machine et/ou le réseau vers la machine est un peu saturé.

$Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut (il y'a aussi tar, rsyncd, smb)

$Conf{PingMaxMsec} = 999; // Délai max pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire backuper.

$Conf{Language} = 'fr' // l'interface Web et les messages en français

$Conf{EMailUserDestDomain} = '@testeur.sn' // Mettre le vrai domaine

}}}

Voilà ! FIN de la config de BackupPC qu'il faut juste relancer :

{{{
# invoke-rc.d backuppc restart // Sous debian et compagnies
# service backuppc restart // Sous fedora et consorts
}}}


== 3- Supplément BackuPC (Interface Web) : ==

Inclure la config web de BackupPC dans notre Apache en rajoutant une ligne de '''Include''' dans la config de Apache :

 '''''Include /etc/backuppc/apache.conf '''''

Ligne que j'ai rajoutée dans /etc/apache2/apache.conf

Puis, réactualiser apache :
{{{
# apache2ctl graceful // Sous debian
# apachectl graceful // Sous redhat
}}}
Ensuite, modifiez le mot de passe de l'utilisateur backuppc de l'interface web :
{{{
# htpasswd -b /etc/backuppc/htpasswd backuppc <nouveaumotdepasse>
}}}

Ensuite, on arrive à se connecter à l'interface Web de BackupPC avec l'utilisateur backuppc et le <nouveaumotdepasse> saisi avec htpasswd.


== 4- Ajout des PCs à backuper : ==

D'abord, générer une clé SSH pour l'utilisateur système backuppc. En effet, il y'a un utilisateur du système, '''backuppc''' qui est créé lors de l'installation de BackupPC et c'est '''backuppc''' qui exécute le programme BackupPC.
{{{
# su – backuppc // Se connecter en tant que backuppc
# ssh-keygen // Générer la clé SSH pour backuppc : la clé se trouve par défaut dans le répertoire /var/lib/backuppc/.ssh/
}}}
Une fois que la clé est générée, on peut commencer à enregistrer des machines cibles à backuper.

Pour ajouter une machine, on édite le fichier '''/etc/backuppc/hosts''' : puis on rajoute un hôte par ligne en respectant la syntaxe du fichier.

Exemples:
{{{
 <nomdemachinecible|adresseIPcible> 0 backuppc [<autreutilisateur>]
 roger-pc 0 backuppc
 12.123.2.1 0 backuppc thomas
}}}

Puis, recharger la config de backuppc : '''''# invoke-rc.d backuppc reload'''''

Nos nouveaux PCs sont donc pris en charge. Il faut se rendre ensuite sur l'interface Web de backuppc : http://<IPServeurBackupPC>/backuppc

Dans la liste déroulante de gauche, on voit bien apparaître les machines nouvellement rajoutées. On sélectionne une machine, puis on lance une sauvegarde complète pour celle-ci en cliquant sur le bouton « Démarrer la sauvegarde complète ». Evidemment, cela ne marche pas, mais cela a pour effet de créer la structure arborescente pour ce PC dans '''/var/lib/backuppc/pc/'''. Donc en gros, on notera la présence du répertoire '''/var/lib/backuppc/pc/<nomdemachinecible>/'''.

On peut ensuite ajouter dans ce répertoire un fichier '''config.pl''' pour customiser un peu la sauvegarde pour cette machine : par exemple, en changeant la méthode de sauvegarde, ou en précisant des répertoires à exclure ou à rajouter dans la sauvegarde, des fichiers ou types de fichiers à exclure, ...

Ensuite, copier la clé SSH de '''backuppc''' sur le root de la machine cible :
{{{
# ssh-copy-id -i /var/lib/backuppc/.ssh/id-rsa.pub root@<nomdemachinecible>
}}}
Puis en tant que utilisateur backuppc, essayer de se connecter à la cible.
{{{
(# su – backuppc )
# ssh -l root <nomdemachinecible> // Normalement, ça doit se connecter sans demander de mot de passe, et ça permet aussi de recevoir le fingerprint de la machine.
}}}
Attention : il faut donc qu'il y'ait du SSH installé sur la machine cible, ainsi que rsync si la méthode utilisée pour le backup est rsync.

Ensuite, on repart sur l'interface Web, puis on relance le backup de la cible qui devrait normalement marcher.


== 5- Restauration avec BackupPC : ==

C'est bien de sauvegarder, mais il faut aussi savoir restaurer. Sinon, ça ne sert à rien de sauvegarder.

Ce qui est bien avec BackupPC, c'est que tout est facile, et je me demande bien pourquoi j'écris ce document. Mais bon, puisqu'on l'a commencé ...

Pour restaurer (également très facile), il suffit d'aller sur l'interface Web, de choisir le PC à restaurer, puis la sauvegarde qu'on veut (en fonction de la date de sauvegarde), puis le répertoire, et enfin le fichier à restaurer (peut être un répertoire aussi). On sélectionne, puis on click sur « Restaurer ... », on choisit la méthode de restauration, et on restaure tout simplement comme de l'eau à boire.



   '''''__FIN de BackupPC'''''




= Complément : BACKUP de BackupPC =


On ne peut pas faire de backup, sans faire de backup de ce backup. Sinon, ça ne servirait à rien, le jour où le serveur de backup tombe en panne, ou brûle à cause du jardinier de Jérôme par exemple, ou tombe dans de l'eau... Bref ! On fait donc un backup de backup, voire même un backup de backup de backup...

Avec notre serveur de backup, nos backups se trouvent dans '''/var/lib/backuppc/''', c'est donc se répertoire qu'il faut sauvegarder.

Plusieurs techniques existent, mais en gros, ce qu'il faut retenir, c'est qu'il est juste un peu intelligent de ne pas avoir le backup du backup pas dans le même local que le backup. Après on peut faire tout ce qu'on veut pour réaliser ce "papa de backup" ; par exemple, en mettant un autre serveur dans un autre local qui vient copier les données régulièrement, ou bien faire des sauvegardes périodiques sur disques durs externes qu'on cache ailleurs, ou même combiner les deux méthodes, et avoir des bandes magnétiques aussi... Bon, nous ce qu'on choisit, c'est la plus simple, parce que déjà, on est quand même au niveau de backup de backup, sinon ça commence à devenir trop sophistiqué. (Je commence à dire des bétises là : OBJECTION!)

Alors, pour sauvegarder le BackupPC sur un disque dur externe, on fait tout simplement de la copie de partition avec partimage.

'''''# partimage <options> /<partition> /<disquedurexterne>/<fichierimage>'''''

En gros, y'a que ça.

'''__Détails : Avec un disque dur extrene USB de 700 Go reconnu en tant que /dev/sdc : (toutes les commandes) '''
{{{
# fdisk /dev/sdc // avec ça, je vais créer une partition /dev/sdc1
# pvcreate /dev/sdc1 // Créer un PV
# vgcreate usb0 /dev/sdc1 // Création du VG usb0
# lvcreate -L 698G -n backup usb0 // Création du LV backup dans le VG usb0
}}}
On a donc une partition LVM /dev/usb0/backup sur notre disque dur externe.
{{{
# mkfs.ext3 /dev/usb0/backup // On formate la nouvelle partition en ext3. On pourrait le faire aussi en ext2. Bon non, on garde ext3, y'a de la journalisation, ça pourrait être utile.
# mkdir /sauvegarde // On crée un répertoire
# mount -t ext3 /dev/usb0/backup /sauvegarde // On la monte, cette partition du disque externe
}}}

Supposons donc que notre '''/var/lib/backuppc''' est en fait le point de montage de '''/dev/sata0/backup'''.


{{{
# lvcreate --snapshot --size 10G --name backupsave /dev/sata0/backup // C'est là que c'est très intéressant. Partimage ne peut pas utiliser une partition montée et donc en cours d'utilisation.
}}}


Heureusement que LVM permet de prendre une vue (snapshot) d'une partition à un instant t donné, et c'est cette vue qui sera sauvegardée. '''lvcreate''' crée un snapshot (snapshot, genre une photo de la partition), size = 10G précise que les changements opérés sur la partition seront sauvegardées dans un espace de 10Go. En effet, snapshot, ne copie pas vraiment les données de la partition dans un autre espace disque, il crée juste un endroit où il garde les traces des modifications opérées sur la partition. Toute modification faite sur la partition réelle est enregistrée, ce qui permet de voir la partition dans son état au moment de la création du snapshot (et donc d'avoir notre snapshot). (C'est plus malin quand même).

Ensuite, on crée un répertoire pour monter et démonter notre gentil snapshot. C'est bête mais, c'est comme ça ; sans ça, partimage qui vient juste après ne veut pas marcher.
{{{
# mkdir /tmp/quedale
# mount /dev/sata0/backupsave /tmp/quedale && umount /dev/sata0/backupsave
}}}

Démarrons maintenant notre sauvegarde de sauvegarde avec partimage :
{{{
# partimage [options] save /dev/sata0/backupsave /sauvegarde/image
Où [options] égal : -b -B '=' : pour avoir le mode batch et non interactif avec l'interface bidon là !!
         -z0 : pas de compression (peut être z1 ou z2 ==> compression)
         -o (--overwrite) : Effacer les sauvegardes précédentes
         -d (--nodescr) : Pas de demande de description pour aucune image
         -M (--nonmbr) : Pas de backup de MBR
         -c (--nocheck) : Pas de check de partition avant de commencer à travailler
}}}

Notre backup de backup est donc faite et se trouve sur le disque dur externe USB. On peut donc démonter la partition, rendre le lvm inactif et retirer le disque pour le conserver ailleurs loin du serveur.
{{{
# umount /sauvegarde
# vgchange -an /dev/usb0
}}}

Restauration du backup de backup :

Brancher le disque dur USB
Monter la partition du disque :
{{{
# vgchange -ay /dev/usb0
# mount /dev/usb0/backup /sauvegarde
Puis restaurer :
# partimage [options] restore /dev/<autrepartition> /sauvegarde/image
ou bien :
# partimage [options] restore /dev/sata0/backup /sauvegarde/image // restauration directe de la partition de backuppc
}}}
Ensuite, on monte la partition /dev/<autrepartition> et on retrouve nos backups de PCs.




              '''''__FIN de FIN de Backup de backup'''''



[Bon, maintenant il faut faire des scripts de sauvegardes automatiques si vous intéresse, et faire un peu de crontab. C'est plus intéressant en tout cas. Encore plus interessant, utiliser udev pour lancer des scripts quand les disques se branchent. Paut être utile de tester les disque au moment où on les branche. Comme ça, en cas de problème, on cherche à résoudre avant que le programme de backup de backup (avec partimage) se lance. Peut être que si je suis inspiré je ferai une documentation de ça une prochaine fois]


__Sources :

http://backuppc.sourceforge.net/faq/BackupPC.html ++++

http://wiki.auf.org/wikiteki/ZAO/Dakar/Configuration/Backup ++++ ;-) Merci à Jérôme. Toutes ces idées sont de lui.

http://www.klipz.fr/tutoriel_backuppc.html +++

http://doc.ubuntu-fr.org/backuppc --






----
CatégorieLogiciel [[CatégorieRecommandationDRI]]

BackupPC est le logiciel de sauvegarde adopté par l'AUF.

  • CETTE PAGE EST À REFAIRE

Les procédures à écrire (liste non exhaustive) :

  • Installation de BackupPC sur Debian à l'AUF
  • Sauvegarde d'un serveur
  • Restauration d'un serveur
  • Particularités pour les serveurs virtuels (OpenVZ)
  • Sauvegarde d'un poste fixe
  • Sauvegarde d'un poste portable
  • Sauvegarde des sauvegardes, et restauration d'un serveur de sauvegarde

    Petit coup de pouce de la part de Roger

    JC, j'ai fini les modifs, la balle est dans ton camp ;-)

INSTALLATION DE BACKUPPC

BackupPC est un logiciel très intéressant, très facile à installer, et à gérer et qui permet bien sûr de faire de bonnes sauvegardes de nos PCs. Aujourd'hui, le backup de nos machines notamment serveur de données est aussi (sinon même plus) important que la « sécurité » de ces machines. (Par exemple, si votre disque dur plante, vous avez beau avoir le meilleur firewall du monde, le meilleur IDS de la planète, vous êtes _ _ _). Et BackupPC est un logiciel qui joue bien se rôle ; avec son interface WEB, et ces nombreuses méthodes de sauvegardes, il arrive à me satisfaire complètement. (Il faut reconnaître aussi que je suis pas un gars bien compliqué.)

Démarrons donc notre installation :

1- Installation :

Installation du serveur de base Debian Etch ou tout ce que vous voulez. Paquets à rajouter :

apticron : pour les annonces de mises à jour

beep : pour pouvoir faire du bruit en cas de problème et alerter les gens

git : pour la gestion de changement de configurations

logcheck : checker les logs à la recherche de choses bizares

ntp : pour synchroniser l'heure

partimage : copie de partition, me permet de faire du backup de backup

rsync et libfile-rsyncp-perl +++: requis par notre méthode de sauvegarde des PCs (rsync)

snmpd : Surtout pour monitorer la partition qui sert de bakup

sshd +++: faire du SSH

sudo : pour faire du sudoers

tcpdump : faire de l'analyse de trafic quand c'est bizare

backuppc +++ : Rôle de la machine.

Les paquets marqués +++ sont obligatoires pour cette installation.

Sous Debian, les install de tous ces trucs se font avec : aptitude install <paquet>

Sous Redhat et autres Fedora et CentOS, essayer avec : yum install <paquet> // Pas testé

Donc installation très facile, très très facile.

2- Config de ce sympathique BackupPC :

Toute la config se trouve dans le répertoire /etc/backuppc/. Il faut donc commencer par s'y positionner. # cd /etc/backuppc/

La config même sophistiquée n'est pas du tout compliquée, malgré la longueur du fichier principal de configuration. Et en général, les options par défaut sont tout à fait valides et marchent bien.

Donc, faisons un peu de customisation en ouvrant le fichier /etc/backuppc/config.pl

Changeons ces options :

$Conf{WakeupSchedule} = [1..24];  // Réveil toutes les heures de la journée

$Conf{MaxOldLogFiles} = 28;   // L'âge max des logs

$Conf{DfMaxUsagePct} = 92;  // à 92% de saturation de disque: ==> envoi de rapport, plus de backup régulier

$Conf{BackupPCUser} = 'backuppc';

$Conf{FullPeriod} = 13.97;  // Full backup toutes les 2 semaines (par PC bien sûr)

$Conf{IncrPeriod} = 0.97;  // Incrémental backup tous les jours

$Conf{FullKeepCnt} = 6; //  6 backup complets, or 1 backup complet toutes les 2 semaines , donc 

$Conf{FullAgeMax}     = 93; // Age maxi des backup-complet = 93 jours, donc plus de 3 mois

$Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours.

$Conf{IncrKeepCnt} = 15;  // On garde 15 sauvegardes incrémentales, ce qui nous fait 15 jours

$Conf{IncrAgeMax}     = 30; // 30 jours max pour l'âge de celles-ci

$Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge.

$Conf{BlackoutPeriods} = [ 
    { 
        hourBegin =>  7.5, 
        hourEnd   => 18.5, 
        weekDays  => [1, 2, 3, 4, 5], 
    }, 

];  // En gros, la période où il faut pas faire trop de backup si les machines ne répondent pas bien aux pings. Le logiciel fait des pings périodiques et garde des statistiques. Il sait donc quand une machine et/ou le réseau vers la machine est un peu saturé.

$Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut (il y'a aussi tar, rsyncd, smb)

$Conf{PingMaxMsec} = 999; // Délai max pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire backuper.

$Conf{Language} = 'fr'  // l'interface Web et les messages en français

$Conf{EMailUserDestDomain} = '@testeur.sn' // Mettre le vrai domaine

Voilà ! FIN de la config de BackupPC qu'il faut juste relancer :

# invoke-rc.d backuppc restart // Sous debian et compagnies
# service backuppc restart // Sous fedora et consorts

3- Supplément BackuPC (Interface Web) :

Inclure la config web de BackupPC dans notre Apache en rajoutant une ligne de Include dans la config de Apache :

  • Include /etc/backuppc/apache.conf

Ligne que j'ai rajoutée dans /etc/apache2/apache.conf

Puis, réactualiser apache :

# apache2ctl graceful  // Sous debian
# apachectl graceful  // Sous redhat 

Ensuite, modifiez le mot de passe de l'utilisateur backuppc de l'interface web :

# htpasswd -b /etc/backuppc/htpasswd backuppc <nouveaumotdepasse>

Ensuite, on arrive à se connecter à l'interface Web de BackupPC avec l'utilisateur backuppc et le <nouveaumotdepasse> saisi avec htpasswd.

4- Ajout des PCs à backuper :

D'abord, générer une clé SSH pour l'utilisateur système backuppc. En effet, il y'a un utilisateur du système, backuppc qui est créé lors de l'installation de BackupPC et c'est backuppc qui exécute le programme BackupPC.

# su – backuppc  // Se connecter en tant que backuppc
# ssh-keygen  // Générer la clé SSH pour backuppc : la clé se trouve par défaut dans le répertoire /var/lib/backuppc/.ssh/

Une fois que la clé est générée, on peut commencer à enregistrer des machines cibles à backuper.

Pour ajouter une machine, on édite le fichier /etc/backuppc/hosts : puis on rajoute un hôte par ligne en respectant la syntaxe du fichier.

Exemples:

        <nomdemachinecible|adresseIPcible>      0       backuppc        [<autreutilisateur>]
        roger-pc                                0       backuppc        
        12.123.2.1                              0       backuppc        thomas

Puis, recharger la config de backuppc : # invoke-rc.d backuppc reload

Nos nouveaux PCs sont donc pris en charge. Il faut se rendre ensuite sur l'interface Web de backuppc : http://<IPServeurBackupPC>/backuppc

Dans la liste déroulante de gauche, on voit bien apparaître les machines nouvellement rajoutées. On sélectionne une machine, puis on lance une sauvegarde complète pour celle-ci en cliquant sur le bouton « Démarrer la sauvegarde complète ». Evidemment, cela ne marche pas, mais cela a pour effet de créer la structure arborescente pour ce PC dans /var/lib/backuppc/pc/. Donc en gros, on notera la présence du répertoire /var/lib/backuppc/pc/<nomdemachinecible>/.

On peut ensuite ajouter dans ce répertoire un fichier config.pl pour customiser un peu la sauvegarde pour cette machine : par exemple, en changeant la méthode de sauvegarde, ou en précisant des répertoires à exclure ou à rajouter dans la sauvegarde, des fichiers ou types de fichiers à exclure, ...

Ensuite, copier la clé SSH de backuppc sur le root de la machine cible :

# ssh-copy-id -i /var/lib/backuppc/.ssh/id-rsa.pub root@<nomdemachinecible>

Puis en tant que utilisateur backuppc, essayer de se connecter à la cible.

(#  su – backuppc )
# ssh -l root  <nomdemachinecible>  // Normalement, ça doit se connecter sans demander de mot de passe, et ça permet aussi de recevoir le fingerprint de la machine.

Attention : il faut donc qu'il y'ait du SSH installé sur la machine cible, ainsi que rsync si la méthode utilisée pour le backup est rsync.

Ensuite, on repart sur l'interface Web, puis on relance le backup de la cible qui devrait normalement marcher.

5- Restauration avec BackupPC :

C'est bien de sauvegarder, mais il faut aussi savoir restaurer. Sinon, ça ne sert à rien de sauvegarder.

Ce qui est bien avec BackupPC, c'est que tout est facile, et je me demande bien pourquoi j'écris ce document. Mais bon, puisqu'on l'a commencé ...

Pour restaurer (également très facile), il suffit d'aller sur l'interface Web, de choisir le PC à restaurer, puis la sauvegarde qu'on veut (en fonction de la date de sauvegarde), puis le répertoire, et enfin le fichier à restaurer (peut être un répertoire aussi). On sélectionne, puis on click sur « Restaurer ... », on choisit la méthode de restauration, et on restaure tout simplement comme de l'eau à boire.

  • FIN de BackupPC

Complément : BACKUP de BackupPC

On ne peut pas faire de backup, sans faire de backup de ce backup. Sinon, ça ne servirait à rien, le jour où le serveur de backup tombe en panne, ou brûle à cause du jardinier de Jérôme par exemple, ou tombe dans de l'eau... Bref ! On fait donc un backup de backup, voire même un backup de backup de backup...

Avec notre serveur de backup, nos backups se trouvent dans /var/lib/backuppc/, c'est donc se répertoire qu'il faut sauvegarder.

Plusieurs techniques existent, mais en gros, ce qu'il faut retenir, c'est qu'il est juste un peu intelligent de ne pas avoir le backup du backup pas dans le même local que le backup. Après on peut faire tout ce qu'on veut pour réaliser ce "papa de backup" ; par exemple, en mettant un autre serveur dans un autre local qui vient copier les données régulièrement, ou bien faire des sauvegardes périodiques sur disques durs externes qu'on cache ailleurs, ou même combiner les deux méthodes, et avoir des bandes magnétiques aussi... Bon, nous ce qu'on choisit, c'est la plus simple, parce que déjà, on est quand même au niveau de backup de backup, sinon ça commence à devenir trop sophistiqué. (Je commence à dire des bétises là : OBJECTION!)

Alors, pour sauvegarder le BackupPC sur un disque dur externe, on fait tout simplement de la copie de partition avec partimage.

# partimage <options> /<partition> /<disquedurexterne>/<fichierimage>

En gros, y'a que ça.

Détails : Avec un disque dur extrene USB de 700 Go reconnu en tant que /dev/sdc : (toutes les commandes)

# fdisk /dev/sdc // avec ça, je vais créer une partition /dev/sdc1
# pvcreate /dev/sdc1  // Créer un PV
# vgcreate usb0 /dev/sdc1  // Création du VG usb0
# lvcreate -L 698G -n backup usb0 // Création du LV backup dans le VG usb0

On a donc une partition LVM /dev/usb0/backup sur notre disque dur externe.

# mkfs.ext3  /dev/usb0/backup // On formate la nouvelle partition en ext3. On pourrait le faire aussi en ext2. Bon non, on garde ext3, y'a de la journalisation, ça pourrait être utile.
# mkdir /sauvegarde  // On crée un répertoire
# mount -t ext3 /dev/usb0/backup  /sauvegarde  // On la monte, cette partition du disque externe

Supposons donc que notre /var/lib/backuppc est en fait le point de montage de /dev/sata0/backup.

# lvcreate --snapshot --size 10G --name backupsave /dev/sata0/backup  // C'est là que c'est très intéressant. Partimage ne peut pas utiliser une partition montée et donc en cours d'utilisation. 

Heureusement que LVM permet de prendre une vue (snapshot) d'une partition à un instant t donné, et c'est cette vue qui sera sauvegardée. lvcreate crée un snapshot (snapshot, genre une photo de la partition), size = 10G précise que les changements opérés sur la partition seront sauvegardées dans un espace de 10Go. En effet, snapshot, ne copie pas vraiment les données de la partition dans un autre espace disque, il crée juste un endroit où il garde les traces des modifications opérées sur la partition. Toute modification faite sur la partition réelle est enregistrée, ce qui permet de voir la partition dans son état au moment de la création du snapshot (et donc d'avoir notre snapshot). (C'est plus malin quand même).

Ensuite, on crée un répertoire pour monter et démonter notre gentil snapshot. C'est bête mais, c'est comme ça ; sans ça, partimage qui vient juste après ne veut pas marcher.

# mkdir /tmp/quedale
# mount /dev/sata0/backupsave /tmp/quedale && umount /dev/sata0/backupsave

Démarrons maintenant notre sauvegarde de sauvegarde avec partimage :

# partimage [options] save /dev/sata0/backupsave /sauvegarde/image
Où [options] égal : -b  -B '='  : pour avoir le mode batch et non interactif avec l'interface bidon là !!
                       -z0 : pas de compression (peut être z1 ou z2 ==> compression)
                       -o (--overwrite) : Effacer les sauvegardes précédentes
                       -d (--nodescr) : Pas de demande de description pour aucune image
                       -M (--nonmbr) : Pas de backup de MBR
                       -c (--nocheck) : Pas de check de partition avant de commencer à travailler

Notre backup de backup est donc faite et se trouve sur le disque dur externe USB. On peut donc démonter la partition, rendre le lvm inactif et retirer le disque pour le conserver ailleurs loin du serveur.

# umount /sauvegarde
# vgchange -an /dev/usb0

Restauration du backup de backup :

Brancher le disque dur USB Monter la partition du disque :

# vgchange -ay /dev/usb0
# mount /dev/usb0/backup /sauvegarde
Puis restaurer :
# partimage [options] restore /dev/<autrepartition> /sauvegarde/image
ou bien :
# partimage [options] restore /dev/sata0/backup  /sauvegarde/image // restauration directe de la partition de backuppc

Ensuite, on monte la partition /dev/<autrepartition> et on retrouve nos backups de PCs.

  • FIN de FIN de Backup de backup

[Bon, maintenant il faut faire des scripts de sauvegardes automatiques si vous intéresse, et faire un peu de crontab. C'est plus intéressant en tout cas. Encore plus interessant, utiliser udev pour lancer des scripts quand les disques se branchent. Paut être utile de tester les disque au moment où on les branche. Comme ça, en cas de problème, on cherche à résoudre avant que le programme de backup de backup (avec partimage) se lance. Peut être que si je suis inspiré je ferai une documentation de ça une prochaine fois]

Sources :

http://backuppc.sourceforge.net/faq/BackupPC.html ++++

http://wiki.auf.org/wikiteki/ZAO/Dakar/Configuration/Backup ++++ ;-) Merci à Jérôme. Toutes ces idées sont de lui.

http://www.klipz.fr/tutoriel_backuppc.html +++

http://doc.ubuntu-fr.org/backuppc --


CatégorieLogiciel CatégorieRecommandationDRI

BackupPC (dernière édition le 2008-12-18 15:49:11 par NacerAdamouSaidou)