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

Service informatique

« BackupPC » : différence entre les versions

De Service informatique
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
== Présentation ==
== Présentation ==
BackupPC est un logiciel libre écrit en PERL qui
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.

== Résumé de l'installation actuelle (15/01/08) ==
le serveur de backup principal est sur lsiit-b et n'est pas secouru.

Il sauvegarde principalement des machines unix (linux, mac os X) et lsiit-a

lsiit-a sauvegarde des machines windows et lsiit-b

lsiit sauvegarde une deuxième fois les machines du secrétariat (lsiit-rupp, lsiit-broger, adm-di-tebib, sansoucis)

== 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/ 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)<br />
Primary (Create a new primary partition)<br />
Size => Tout le disque choix par défaut<br />
Write<br />
Yes<br />
Quit<br />

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.<br/>
La seconde spécifie si DHCP doit être activé pour la recherche de l'hôte.<br/>
La troisième colonne indique l'utilisateur "propriétaire" de l'hôte,<br/>
la quatrième et dernière les utilisateurs
supplémentaires.<br/>
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. <br/>
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'''
J'ai mis [5, 4, 3, 2, 1] pour avoir:
* 5 sauvegardes à 1 sem d'intervalle
* puis 4 sauvegarde ) 2 sem d'intervalle
* puis 3 sauvegarde à 4 sem d'intervalle
* ....

ce qui devrait donner de sauvegardes vieilles de 1, 2, 3, 4, 5, 7, 9 , 11, 13, 17, 21, 25, 33, 41, 57 semaines'
* $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 ==

* http://lsiitng/backuppc/ pour les machines sous windows
* http://lsiit-b:8080/backuppc/ pour les machines sous unix, linux et Mac OS X.

== 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
[http://sourceforge.net/project/showfiles.php?group_id=34854&package_id=88133 sourceforge]
et j'en ai fait un fichier .zip pour qu'il soit déjà préconfiguré:
[[Media:Cygwin-rsyncd-2-6-8_0-lsiit.zip|Cygwin-rsyncd-2-6-8_0-lsiit.zip‎ ‎]]

# Créer un compte root/algo
# Extraire cygwin-rsyncd-2.6.8_0-lsiit.zip vers C:Rsyncd
# <strike>Modifier rsyncd.conf</strike>
# Laisser passer ping (ICMP autoriser echo entant) et rsyncd (TCP 873) sur le par-feu windows
# 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 ==

* voir mails backuppc

* revoir fichiers de configuration de chaque machine + voir avec utilisateurs

nutshell
merinis
kanabis
reglis
pastis
saucis
tetris
oasis
stagis
advansis
indigo
lsiitsp
alkindi
danny
aramis
elia
kia
mapcoqis
hitormiss
sangria
wilde
kagan
satie
angelico
estimesi

** lsiit
** domis
** watershed
** reglis
** geodisi
** fodomust
** coqsis
** lsiit-a
** lsiit-b
** gouache
** lsiit-miv
** giotto
** sysley
** bouraoui
** laika

* relire doc backuppc

* revoir fichier de config 1 par 1 (domis.pl)

* 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 (wilde, brett, max)

- 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

- Faire des archives de backup via backuppc sur dvd u K7

- Voir le backup de base de données (DumpPreUserCmd)

- - lire doc supplémentaire backuppc (web, revue)

- raid matériel

== Liens utiles ==
* [http://www.x-tnd.be/tutoriels.php5?cat=divers&art=backuppc Sauvegarde avec BackupPC - Johan CWIKLINSKI]
* [http://www.klipz.fr/tutoriel_backuppc.html BackupPC : Sauvegardes automatisées de machines par Fabien Germain]
* [http://doc.ubuntu-fr.org/backuppc Serveur de sauvegarde automatique : BackupPC sur Ubuntu-fr]

Version du 30 janvier 2008 à 11:07

Présentation

BackupPC est un logiciel libre écrit en PERL qui