Taille: 17198
Commentaire:
|
Taille: 11128
Commentaire:
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
Test du logiciel backuppc: Apres l'installation du logiciel: (apache2 .... Changer le mot de passe de l’utilisateur « backuppc »: # ''htpasswd /etc/backuppc/htpasswd backuppc'' ''Explication du /etc/backuppc/config.pl:'' $Conf{ServerHost} = '192.168.2.151'; // l’adresse ip du serveur ou le nom du serveur de sauvegarde. |
__Cette page est une page de test__ I‐ Installation de Backuppc : Procédure à zéro sur une debian etch {{{ ### Voir installation d'un serveur type AUF: 1- Les outils de base : ssh, rsync apt-get install ssh rsync 2- Le Serveur WEB apache2 et de Backuppc apt-get install apache2 backuppc cp /etc/backuppc/apache.conf /etc/apache2/conf.d/backuppc.conf /etc/init.d/apache2 start /etc/init.d/backuppc start 3- Modifier les mots de passe de l'utilisateur backuppc pour l'accès a l'interface web d'administration: htpasswd -b /etc/backuppc/htpasswd backuppc <mot de passe> }}} II‐ Sauvegarde d’un serveur : a. On backup tout sauf des répertoires particuliers (Backuppc gère les doublons) b. On met une liste à exclure (les .mp3 ....) c. On sauvegarde les serveurs la nuit Le fichier de configuration config.pl du serveur: ''Explication du fichier de config : /etc/backuppc/config.pl'' {{{ $Conf{ServerHost} = 'IP'; // l’adresse ip du serveur ou le nom du serveur de sauvegarde. |
Ligne 18: | Ligne 35: |
Ligne 20: | Ligne 36: |
$Conf{MaxBackups} = 4; // nombre maximum de sauvegardes sumultanee à effectuer $Conf{CompressLevel} = 3; // taux de compression qui peut prendre des valeurs entre 0 et 9 (0 pour désactiver la compression). 3 est la valeur recommandée pour avoir une bonne compression sans trop surcharger le processeur. |
$Conf{MaxBackups} = 4; // nombre maximum de sauvegardes sumultanée à effectuer $Conf{CompressLevel} = 3; // taux de compression qui peut prendre des valeurs entre 0 et 9 (0 pour désactiver la compression). 3 est la valeur recommandée pour avoir une bonne compression sans trop surcharger le processeur. |
Ligne 28: | Ligne 39: |
Ligne 30: | Ligne 40: |
Ligne 32: | Ligne 41: |
Ligne 34: | Ligne 42: |
Ligne 36: | Ligne 43: |
Ligne 38: | Ligne 44: |
Ligne 40: | Ligne 45: |
Ligne 42: | Ligne 46: |
Ligne 44: | Ligne 47: |
Ligne 46: | Ligne 48: |
Ligne 48: | Ligne 49: |
Ligne 50: | Ligne 50: |
Ligne 52: | Ligne 51: |
Ligne 54: | Ligne 52: |
Ligne 56: | Ligne 53: |
Ligne 58: | Ligne 54: |
Ligne 60: | Ligne 55: |
]; // 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 ou le réseau vers la machine est un peu saturé. $Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut (Ca pourra etre tar, rsyncd,smb) |
]; // 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 ou le réseau vers la machine est saturé. $Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut |
Ligne 66: | Ligne 58: |
Ligne 68: | Ligne 59: |
$Conf{SendmailPath}='/usr/sbin/ '''$Conf{SendmailPath} = '/usr/sbin/sendmail'; au début il faut que le Serveur mail 'Sendmail' et le domaine sont configuré pour spécifier ce path''' '''$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. '''$Conf{EMailAdminUserName} = 'admin-backup@backup.domain.com';''' : adresse email de l'administrateur du serveur de sauvegarde '''$Conf{EMailUserDestDomain} = '@domain.com';''' : domaine des utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@domain.com la configuration de l'interface CGI : '''$Conf{CgiAdminUserGroup} = '';''' : groupe des utilisateurs administrateurs. Le groupe doit exister dans le fichier .htpasswd '''$Conf{CgiAdminUsers} = 'admin utilisateur1';''' : utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier .htpasswd '''$Conf{CgiURL} = 'http://backup.domain.com/cgi-bin/BackupPC_Admin';''' : adresse HTTP du script CGI '''$Conf{Language} = 'fr';''' : langue de l'interface CGI '''$Conf{CgiDateFormatMMDD} = 0;''' : format de date. 0 pour le format internationnal (JJ/MM) et 1 pour le format US (MM/JJ) Ce sont les options les plus importantes de la configuration de BackupPC On doit redémarrer le serveur backuppc en tapant : ''# /etc/init.d/backuppc restart '' '''Fichier de configuration par hôtes''' Pour configurer ou ajoute un utilisateur on entre dans ''/etc/backuppc'' et on ouvre le fichier ''«hosts»'' host dhcp user moreUsers hostname1 1 user2 stillanotheruser //exemple Pascal 0 backuppc //exemple Ziad 0 backuppc //exemple 192.168.2.161 0 backuppc //si on n’a pas un DNS server on met l'adresse IP Après le changement dans le fichier ''hosts'' dans /''etc/backuppc/'' il faut redémarrer backuppc Donc on écrit : ''# /etc/init.d/backuppc'' Il faut qu’on crée un répertoire qui a le nom du «''hostname» ''de l'utilisateur qu’on doit lui faire un full backup, donc : # su backuppc //on change du utilisateur root a backuppc # cd /var/lib/backuppc/pc/ # mkdir 192.168.2.161 //crée le répertoire 192.168.2.161 qui et l’utilisateur qu’on doit lui faire un backup (le hostname ou l'adresse ip de l’utilisateur parai dans la liste des hôtes dans l’interface graphique du serveur) On doit ensuite ajouter dans ce répertoire un fichier ''config.pl'' qui contient les options suivantes: * Créer un nouveau fichier dans /var/lib/backuppc/pc/192.168.2.161/ nommée config.pl, dans lequel nous allons placé la configuration pour la sauvegarde de notre hôte Linux. * On doit mettre en place une authentification par clé RSA pour l'accès SSH, pour que le serveur de sauvegarde puisse se connecter avec son utilisateur backuppc en tant que super-utilisateur root sur notre serveur Linux : l'intérêt est que les scripts de ''BackupPC'' peuvent alors se connecter de manière sécurisée sur l'hôte à sauvegarder, sans demande de mot de passe. Voici un exemple de fichier config.pl à créer pour notre hôte Linux : $Conf{XferMethod} = 'rsync'; //c’est le protocole il peut être encore ‘tar’ ou ‘smb’(pour une machine Windows)) <<BR>>$Conf{RsyncClientPath} = '/usr/bin/rsync';<<BR>>$Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList+';<<BR>>$Conf{RsyncClientRestoreCmd} = '$sshPath -l root $host $rsyncPath $argList+'; <<BR>>$Conf{RsyncShareName} = ['/', '/home']; //de sont les repertoire qu’on doit faire une sauvegarde. '''$Conf{BackupFilesExclude} = [ '/proc/*', '/dev/*', '/sys/*', '/tmp/*'];''' '''// nous n'avons aucune utilité à sauvegarder /dev, /tmp, /proc ou /sys puisque ceux-ci ne contiennent aucune donnée réelle ; de la même manière que nous ne voulons pas sauvegarder les partitions montées /media et /mnt, puisque si nous le faisions nous demanderions la sauvegarde des répertoires non existant dans la configuration de la machine de restauration comme les clés USB par exemple, ce qui nous entrainerait dans un cycle infini.''' '''La raison d'être de l'instruction 'proc/*' et non de '/proc' tout court est de permettre une copie du seul répertoire sans procéder à celle de son contenu. La syntaxe utilisée est la même, et pour les mêmes raisons, pour /tmp, /sys et les points de montage.''' '''De cette manière si nous détruisons notre partition racine et ensuite on fait une restauration intégrale, les répertoires correspondant à /tmp, /proc, /sys et ceux ou seront montés les systèmes de fichiers de nos partitions seront re-créés automatiquement.''' <<BR>>$Conf{RsyncArgs} = [<<BR>> '--numeric-ids',<<BR>> '--perms',<<BR>> '--owner',<<BR>> '--group',<<BR>> '--devices', |
$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. $Conf{EMailAdminUserName} = ' admin-backup@backup.domain.com ';''' : adresse email de l'administrateur du serveur de sauvegarde $Conf{EMailUserDestDomain} = '@domain.com';''' : domaine des utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@domain.com ### la configuration de l'interface CGI : $Conf{CgiAdminUserGroup} = '';''''''' : groupe des utilisateurs administrateurs. Le groupe doit exister dans le fichier .htpasswd $Conf{CgiAdminUsers} = 'admin utilisateur1';''' : utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier .htpasswd $Conf{CgiURL} = 'http://backup.domain.com/cgi-bin/BackupPC_Admin';''' : adresse HTTP du script CGI $Conf{Language} = 'fr';''' : langue de l'interface CGI $Conf{CgiDateFormatMMDD} = 0;''' : format de date. 0 pour le format internationnal (JJ/MM) et 1 pour le format US (MM/JJ) }}} ''Afin de sauvegarder le client pc-pascal, il faut ajouter dans ''/etc/backuppc/hostsla ligne {{{ pc-pascal 0 backuppc #### 0 pour adresse statique }}} - Depuis l'interface graphique lancer une sauvegarde complète afin que le logiciel crée le répertoire de sauvegarde /var/lib/backuppc/pc/pc-pascal - Sans doute, la sauvegarde echoue puisque la config du client n'existe toujours pas mais l'etape precedente cree le repertoire pc-pascal dans /var/lib/backuppc/pc/ du serveur (sinon crée le manuellement) - On doit ensuite ajouter dans ce répertoire un fichier ''config.pl'' qui contient les options suivantes: '' '' {{{ $Conf{XferMethod} = 'rsync'; $Conf{RsyncClientPath} = '/usr/bin/rsync'; $Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList+'; $Conf{RsyncClientRestoreCmd} = '$sshPath -l root $host $rsyncPath $argList+'; $Conf{RsyncShareName} = ['/','/home']; #### D'apres le client pc-pascal qui contient deux partitions (Ceci est un exemple) $Conf{RsyncArgs} = [ '--numeric-ids', '--perms', '--owner', '--group', '--devices', '--links', |
Ligne 178: | Ligne 99: |
]; $Conf{RsyncRestoreArgs} = [ |
]; $Conf{RsyncRestoreArgs} = [ |
Ligne 185: | Ligne 106: |
"--links", | |
Ligne 191: | Ligne 113: |
"--specials", ]; $Conf{RsyncLogLevel} = 1; Fichier spéciaux : Linux soutien plusieurs systèmes de fichiers spéciaux comme les liens symboliques, de caractères et de bloquer les fichiers de périphériques FIFOs (pipes), et unix-domain sockets. Ces fichiers sont compressés et mis en commun comme n'importe quel fichier en cas de sauvegarde. Dans tous les cas, le type de fichier est stocké dans l'attribut de fichier de sorte qu'il puisse être correctement restaurée. Donc au lieu d'écrire --links, --hardlinks, --sockets on les remplace par --specials Passons à l'authentification par clé RSA. Nous allons copier la clé d'authentification de l'utilisateur backuppc de notre serveur de sauvegarde, sur l'hôte Linux. Première étape, si ce n'est pas déjà fait : générer les clefs sur le serveur de sauvegarde : # su – backuppc<<BR>> <<BR>>$ ssh-keygen -t rsa<<BR>> ''<enter>''<<BR>> ''<enter>''<<BR>> ''<enter>''<<BR>> <<BR>>$ cat .ssh/id_rsa.pub Votre clé d'authentification se trouve dans ~backuppc/.ssh/id_rsa.pub. Ajoutons là sur l'hôte Linux afin d'autoriser cet utilisateur+machine précis à se connecter en root sur le serveur Linux qui devra être sauvegardé : # mkdir ~root/.ssh/<<BR>> <<BR>># vi ~root/.ssh/authorized_keys2<<BR>> ''<copier ici la clé de l'utilisateur backuppc du serveur de sauvegarde>''<<BR>> '':wq'' copier le clé id_dsa.pub au client 192.168.2.161 : # ssh-copy-id -i id_dsa.pub root@192.168.2.161 Essayons à présent de nous connecter, depuis le serveur de sauvegarde avec backuppc, en root sur le serveur Linux : $ ssh root@192.168.2.151 //c’est l’adresse ip du serveur Donc il faut qu’on soit connecté sans avoir eu besoin d'entrer de mot de passe. '''Configuration d'un hôte Windows''' Voici un fichier config.pl typique à mettre en place pour une machine sous Windows qui possède les partages "Disque_C" et "Disque_D", et qui sont accessibles grâce à l'utilisateur "backup" et le mot de passe "root" : $Conf{XferMethod} = 'smb'; //c’est le protocole pour la connection avec la machine WINDOWS.<<BR>><<BR>>$Conf{SmbShareName} = ['Disque_C', 'Disque_D']; // on donne le nom des répertoires partager sur WINDOWS. <<BR>>$Conf{SmbShareUserName} = "backup"; //c’est le username <<BR>>$Conf{SmbSharePasswd} = "root"; //c’est le password Donc on a configurée le fichier config.pl pour un hôte Linux et l’autre Windows. '''Utiliser l'interface''' Maintenant retournant sur l'interface web de gestion des sauvegardes, et lançons nos premières sauvegardes d'un simple clic ! La toute première sauvegarde (complète) sera bien entendu plus longue que les suivantes (incrémentales). Toute la puissance et la souplesse de ''BackupPC ''réside surtout dans sa capacité à naviguer dans les différentes sauvegardes grâce à des "tree views", à restaurer en trois clics un fichier effacé, et même à télécharger un ensemble de fichiers et répertoires sous la forme d'un fichier zip ou tar, qu'il va génèrer pour vous. Cela peut donc être un outil extrêmement efficace pour dupliquer des fichiers de configuration, ou encore déplacer un site web d'un serveur à un autre en quelques secondes seulement. Restauration avec BackupPC : C'est bien de sauvegarder, mais il faut aussi savoir restaurer. Sinon, ça ne sert à rien de sauvegarder. Pour cela on a trouver que pour la restauration d’une hôte Linux on doit suivre les étapes suivantes et dans l’ordre : 1- On suppose qu’on a 3 partitions déjà crée sur la machine Linux déjà sauvegarder et on doit maintenant la restaurer 2- les partitions sont : « sda1 » qu’on mount sur elle le « / » ; « sda2 » qu’on mount sur elle « /home » et « swap » pas de mount sur elle . 3- on suppose qu’on utilise un « RescueCD » 4- on démarre l’ordinateur qu’on doit le restaurer sur le « RescueCD » 5- on doit au début configurer la connexion réseau, donc on tape : #''net-setup eth0'' (c’est le nom de l’interface réseau) 6- on tape « ''cfdisk'' » pour configurer les partitions du « disque dur » 7- on a déjà dit qu’on doit crée 3 partions sont « sda1 », « sda2 » et « sda3 » 8- on fait ''« save » et « quit »'' 9- on tape ''mkdir –p /mnt/target/home'' (pour crée une directoire virtuel pour qu’on fait la restauration sur elle) 10- ''mount –t ext3 /dev/sda1 /mnt/target ''( on doit mettre le contenu de /dev/sda1 dans /mnt/target ) 11- ''mount –t ext3 /dev/sda2 /mnt/target/home ''( on doit mettre le contenu de /dev/sda2 dans /mnt/target/home ) 12- on entre dans l’interface graphique du serveur BackupPC et on clique sur le hôte qu’on doit restaurer les données 13- on fait « select all » dans le « full backup » pour le hôte qu’on doit le restauré et dans «Restore the files below dir » on met « /mnt/target » 14- Pour restaurer « /home » on met dans “Restore the files below dir” “/mnt/target/home” et on fait “restore” 15- cette étape n’est pas nécessaire parce que les répertoires “/proc, /sys, /dev” contiennent des informations temporelles et si on voit dans les fichiers déjà sauvegarder on ne trouve rien dans ces répertoires, un autre point c’est qu’on a déjà exclus les répertoires “/dev et /proc” dans la configurations de ce hôte. ''# mount -- bind olddir newdir ( ''c'est-à-dire crée un lien entre l’enceins répertoire et la nouvelle ) ''# mount –- bind /proc /mnt/target/proc'' ''# mount –-bind /sys /mnt/target/sys'' ''# mount –-bind /dev /mnt/target/dev'' 16- on revient dans la ligne de commande sur l’ordinateur a restaurer et on tape : ''# chroot /mnt/target /bin/bash ''(''' '''Le répertoire /mnt/target devient le répertoire racine pour le nouveau processus et ses fils, donc c'est "/" ) 17- N'oublions pas que notre “ Boot Loader” doit être installer et on doit configurer Grub sur le MBR (Master Boot Record) Si on a une seule partition sur le disque dur qui a le « Boot Loader » on peut directement utiliser la commande : # ''grub-install hd0'' (ou hd0 c’est le MBR du premier disque dur) Sinon il faut on utilise la commande : # ''find /boot/grub/stage1 ''alors elle retourne par exemple root(hd0,0) donc le dernier (0) c’est la première partition, si elle retourne root(hd0,2) le (2) indique la troisièmes partition. Alors on execute les commandes suivantes : ''#''''grub<<BR>>#root (hd0,?)<<BR>>#setup (hd0)'' Si le Grub donne une erreure donc on peut essayer la commande suivante: # ''grub-install --root-directory=/boot '(hd0)''' Si le problème n’est pas résolu on doit voir ce site pour essayer de trouver une solution: http://www.gentoo.org/doc/fr/grub-error-guide.xml ……………………………………………………………………………………….. '''Définitions de :''' '''/mnt ''': Point de montage pour les systèmes de fichiers temporaires ''(abréviation de mount)'' '''/proc :''' Système de '''fichiers virtuel''' documentant le noyau et les différents processus ''(abréviation de processes)'' '''''/''''''''sys:''' Donne des informations sur les '''périphériques du système et leurs pilotes''', et est également utilisé pour configurer certaines fonctionnalités du noyau. Comme: /sys/devices/ (représentant la couche physique) '''''/dev:''''' Fichiers correspondant (directement ou non) avec un périphérique (abréviation de device''''') ''''' · Les fichiers de [[http://fr.wikipedia.org/wiki/Périphérique_informatique|périphériques]] · périphériques physiques (disque, réseau, bande, disquette ) .''/dev/cdrom'' · [[http://fr.wikipedia.org/wiki/CD-ROM|/dev/hda1]] [[http://fr.wikipedia.org/wiki/CD-ROM|........]] · '''périphériques virtuels''': · ''/dev/null'' · ''/dev/zero'' '''''/''''''''media:''' Point de montage pour les '''media amovibles''', tels que CD-ROM ou clé USB Fichier spéciaux '--specials': Linux soutien plusieurs systèmes de fichiers spéciaux comme les liens symboliques, de caractères et de bloquer les fichiers de périphériques FIFOs (pipes), et unix-domain sockets. Ces fichiers sont compressés et mis en commun comme n'importe quel fichier en cas de sauvegarde. Dans tous les cas, le type de fichier est stocké dans l'attribut de fichier de sorte qu'il puisse être correctement restaurée. Donc au lieu d'écrire --links, --hardlinks, --sockets on peut utiliser --specials |
]; $Conf{RsyncLogLevel} = 1; }}} Copions la clé ssh de l'utilisateur backuppc du serveur vers le client: ''Première étape, si ce n'est pas déjà fait : créer les cl''''é''''s de l'utilisateur backuppc sur le serveur de sauvegarde : '' {{{ su backuppc ssh-keygen -t dsa cd /var/lib/backuppc/.ssh }}} ''Copier les cles sur le client<<BR>>'' {{{ ssh-copy-id - i id_dsa.pub root@pc-pascal }}} Essayons à présent de nous connecter, depuis le serveur de sauvegarde (utilisateur backuppc) sur le client: '' '' ssh root@pc-pascal Maintenant retournant sur l'interface web , et lançons la première sauvegarde '' '' '''Restauration avec BackupPC : ''''' '' ''Apres un crash disque si on a une sauvegarde complète, on doit etre capable de restaurer un client très facilement: '' * '' Il faut avoir la table des partitions pour les recreer ( on prendra l'exemple du client pc-pascal ayant deux partitions le / et le /home)'' * ''J'ai fait des tests avec un « rescuecd » (je l'ai trouvé interessant car il contient tous les outils necessaires ssh, rsync, la famille fdisk, la possibilite de configurer le reseau....)' mais un CD debian-etch pourra etre utilise en mode rescue '' * ''démarrons le client avec le « RescueCD » '' '' '' * configurer l'interface réseau: net-setup eth0'' '' * Recréer les partitions (exemple en utilisant cfdsik cree le / et le /home ) * Creer deux repertoire /mnt/target et /mnt/target/home (le target sera l'equivalent du / ) : mkdir –p /mnt/target/home '' '' * Monter les partitions : * mount –t ext3 /dev/sda1 /mnt/target '' '' * mount –t ext3 /dev/sda2 /mnt/target/home * A partir de l'interface graphique, selectionner le client, * A partir de la derniere sauvegarde choisir le client, selectionnez tous le fichiers et choisir «Restore the files below dir » on met « /mnt/target » * La restauration ne copie pas le /home qui est sur une partition differente, il faut la faire manuellement, * Pour restaurer « /home » on met dans “Restore the files below dir” “/mnt/target/home” et on fait “restore” '' '' Apres la restauration : Sur le client , chrooter le /mnt/target '' # chroot /mnt/target /bin/bash '' ''Installer Grub: '' ''# grub-install hd0 (ou hd0 c’est le MBR du premier disque dur) '' '' '' Sinon il faut on utilise la commande : '' '' # find /boot/grub/stage1 alors elle retourne par exemple root(hd0,0) donc le dernier (0) c’est la première partition, si elle retourne root(hd0,2) le (2) indique la troisièmes partition. '' '' Alors on exécute les commandes suivantes : '' '' #grub root (hd0,?) #setup (hd0) '' '' Si le Grub donne une erreur donc on peut essayer la commande suivante: grub-install --root-directory=/boot (hd0) '' '' '''''__Pour les systemes en LVM__''''' La sauvegarde est pareille,Verifier l'existance du /boot au niveau de la sauvegarde dans le config.pl du client $Conf{RsyncShareName} = ['/','/home','/boot']; Pour la restauration complète du système en LVM on doit utiliser un RescueCD 1.1.4 qui support la création des partions LVM (Kernel 2.6..) Crée les partitions /boot en EXT3 et les autres partions LVM, les VL et les VG Crée un répertoire /mnt/target/boot et /mnt/target/home pour pouvoir restaurer les partition /boot et /home en tappant: * mkdir -p /mnt/target/boot * mkdir -p /mnt/target/home * mount -t ext3 /dev/sda1 /mnt/target/boot * mount /dev/testvg/root /mnt/target/ * mount /dev/testvg/home /mnt/target/home ……………………………………………………………………………………….. ''''' '' ''' ---- CatégorieProjet 4‐ Particularités pour les serveurs virtuels (OpenVZ) a. Il suffit donc de backupper les machines hôtes à 100%... b. il faut juste préciser que quand on est en openvz et qu'on ajoute une machine virtuelle... y'a rien . à ajouter dans les backups, elle est automatiquement backuppée c. Pour la restauration on va dans le backup du serveur hôte et on ne prend que le /var/lib/vz/root/xxx/ . concerné 5‐ Sauvegarde d'un poste fixe / Portable a. Pour un poste fixe : si c’est sous Mysql/NFS à ne pas backupper b. Pour le reste poste fixe ordinaire ou portable : i. A écrire la procédure pour les postes Windows, Ubuntu , MAC i. ii. Dire aux gens qu’on ne backup pas les mp3, films... 6‐ Sauvegarde des sauvegardes : a. L'idée c'est de mettre de temps en temps le contenu du backuppc sur des disques externes une fois par . semaine par exemple b. Dupliquer la partition qui contient les données /var/lib/backuppc qui est en LVM ( Snapshot LVM) c. Script qui fera la sauvegarde des sauvegardes à une heure où il n’y a pas de sauvegarde 7- Sauvegarde de Mysql : . - Il sera utile d'ajouter un cron qui fasse un "dump" complet des bases de données qui seront par la suite . sauvegardées. |
Cette page est une page de test
I‐ Installation de Backuppc : Procédure à zéro sur une debian etch
### Voir installation d'un serveur type AUF: 1- Les outils de base : ssh, rsync apt-get install ssh rsync 2- Le Serveur WEB apache2 et de Backuppc apt-get install apache2 backuppc cp /etc/backuppc/apache.conf /etc/apache2/conf.d/backuppc.conf /etc/init.d/apache2 start /etc/init.d/backuppc start 3- Modifier les mots de passe de l'utilisateur backuppc pour l'accès a l'interface web d'administration: htpasswd -b /etc/backuppc/htpasswd backuppc <mot de passe>
II‐ Sauvegarde d’un serveur :
- On backup tout sauf des répertoires particuliers (Backuppc gère les doublons) b. On met une liste à exclure (les .mp3 ....) c. On sauvegarde les serveurs la nuit
Le fichier de configuration config.pl du serveur:
Explication du fichier de config : /etc/backuppc/config.pl
$Conf{ServerHost} = 'IP'; // l’adresse ip du serveur ou le nom du serveur de sauvegarde. $Conf{WakeupSchedule} = [13]; // pour lancer la sauvegarde à 13h l’heure ou par exemple $Conf{WakeupSchedule} = [1..24]; // toutes les heures de la journée $Conf{MaxBackups} = 4; // nombre maximum de sauvegardes sumultanée à effectuer $Conf{CompressLevel} = 3; // taux de compression qui peut prendre des valeurs entre 0 et 9 (0 pour désactiver la compression). 3 est la valeur recommandée pour avoir une bonne compression sans trop surcharger le processeur. $Conf{MaxOldLogFiles} = 28; // L'âge max des logs (en jours) $Conf{DfMaxUsagePct} = 92; // à 92% de saturation de disque il donne une notification de saturation du disque. $Conf{BackupPCUser} = 'backuppc' // le nom de l’utilisateur qui à l’accès de faire le backup dans le serveur. $Conf{FullPeriod} = 13.97; // full backup par exemple toutes les 2 semaines (par PC ) $Conf{IncrPeriod} = 0.97; // Incrémental backup tous les jours $Conf{FullKeepCnt} = 6; // 6 backup complets $Conf{FullAgeMax} = 93; // Age maximale des backup-complet = 93 jours par exemple $Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours. $Conf{IncrKeepCnt} = 15; // On garde par exemple 15 sauvegardes incrémentales, ce qui nous fait 15 jours. $Conf{IncrAgeMax} = 30; // 30 jours max pour l'âge des sauvegardes incrémentales. $Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge. $Conf{BlackoutPeriods} = [ { hourBegin => 7.5, // de 7:30 AM a 6 :30 hourEnd => 18.5, weekDays => [1, 2, 3, 4, 5], // du lundi au vendredi }, ]; // 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 ou le réseau vers la machine est saturé. $Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut $Conf{PingMaxMsec} = 999; // Délai maximum pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire un backup. $Conf{Language} = 'fr' // l'interface Web et les messages en français ou « en » pour l'anglais. $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. $Conf{EMailAdminUserName} = ' admin-backup@backup.domain.com ';''' : adresse email de l'administrateur du serveur de sauvegarde $Conf{EMailUserDestDomain} = '@domain.com';''' : domaine des utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@domain.com ### la configuration de l'interface CGI : $Conf{CgiAdminUserGroup} = '';''''''' : groupe des utilisateurs administrateurs. Le groupe doit exister dans le fichier .htpasswd $Conf{CgiAdminUsers} = 'admin utilisateur1';''' : utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier .htpasswd $Conf{CgiURL} = 'http://backup.domain.com/cgi-bin/BackupPC_Admin';''' : adresse HTTP du script CGI $Conf{Language} = 'fr';''' : langue de l'interface CGI $Conf{CgiDateFormatMMDD} = 0;''' : format de date. 0 pour le format internationnal (JJ/MM) et 1 pour le format US (MM/JJ)
Afin de sauvegarder le client pc-pascal, il faut ajouter dans /etc/backuppc/hostsla ligne
pc-pascal 0 backuppc #### 0 pour adresse statique
- Depuis l'interface graphique lancer une sauvegarde complète afin que le logiciel crée le répertoire de sauvegarde /var/lib/backuppc/pc/pc-pascal
- Sans doute, la sauvegarde echoue puisque la config du client n'existe toujours pas mais l'etape precedente cree le repertoire pc-pascal dans /var/lib/backuppc/pc/ du serveur (sinon crée le manuellement)
- On doit ensuite ajouter dans ce répertoire un fichier config.pl qui contient les options suivantes:
$Conf{XferMethod} = 'rsync'; $Conf{RsyncClientPath} = '/usr/bin/rsync'; $Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList+'; $Conf{RsyncClientRestoreCmd} = '$sshPath -l root $host $rsyncPath $argList+'; $Conf{RsyncShareName} = ['/','/home']; #### D'apres le client pc-pascal qui contient deux partitions (Ceci est un exemple) $Conf{RsyncArgs} = [ '--numeric-ids', '--perms', '--owner', '--group', '--devices', '--links', '--specials', '--times', '--block-size=2048', '--recursive', '--one-file-system', ]; $Conf{RsyncRestoreArgs} = [ "--numeric-ids", "--perms", "--owner", "--group", "--devices", "--links", "--times", "--block-size=2048", "--relative", "--ignore-times", "--recursive", "--one-file-system", ]; $Conf{RsyncLogLevel} = 1;
Copions la clé ssh de l'utilisateur backuppc du serveur vers le client:
Première étape, si ce n'est pas déjà fait : créer les cl'é's de l'utilisateur backuppc sur le serveur de sauvegarde :
su backuppc ssh-keygen -t dsa cd /var/lib/backuppc/.ssh
Copier les cles sur le client
ssh-copy-id - i id_dsa.pub root@pc-pascal
Essayons à présent de nous connecter, depuis le serveur de sauvegarde (utilisateur backuppc) sur le client:
ssh root@pc-pascal
Maintenant retournant sur l'interface web , et lançons la première sauvegarde
Restauration avec BackupPC :
Apres un crash disque si on a une sauvegarde complète, on doit etre capable de restaurer un client très facilement:
Il faut avoir la table des partitions pour les recreer ( on prendra l'exemple du client pc-pascal ayant deux partitions le / et le /home)
J'ai fait des tests avec un « rescuecd » (je l'ai trouvé interessant car il contient tous les outils necessaires ssh, rsync, la famille fdisk, la possibilite de configurer le reseau....)' mais un CD debian-etch pourra etre utilise en mode rescue
démarrons le client avec le « RescueCD »
configurer l'interface réseau: net-setup eth0
- Recréer les partitions (exemple en utilisant cfdsik cree le / et le /home )
Creer deux repertoire /mnt/target et /mnt/target/home (le target sera l'equivalent du / ) : mkdir –p /mnt/target/home
- Monter les partitions :
mount –t ext3 /dev/sda1 /mnt/target
- mount –t ext3 /dev/sda2 /mnt/target/home
- A partir de l'interface graphique, selectionner le client,
- A partir de la derniere sauvegarde choisir le client, selectionnez tous le fichiers et choisir «Restore the files below dir » on met « /mnt/target »
- La restauration ne copie pas le /home qui est sur une partition differente, il faut la faire manuellement,
Pour restaurer « /home » on met dans “Restore the files below dir” “/mnt/target/home” et on fait “restore”
Apres la restauration :
Sur le client , chrooter le /mnt/target
# chroot /mnt/target /bin/bash
Installer Grub:
# grub-install hd0 (ou hd0 c’est le MBR du premier disque dur)
Sinon il faut on utilise la commande :
# find /boot/grub/stage1 alors elle retourne par exemple root(hd0,0) donc le dernier (0) c’est la première partition, si elle retourne root(hd0,2) le (2) indique la troisièmes partition.
Alors on exécute les commandes suivantes :
#grub root (hd0,?) #setup (hd0)
Si le Grub donne une erreur donc on peut essayer la commande suivante: grub-install --root-directory=/boot (hd0)
Pour les systemes en LVM
La sauvegarde est pareille,Verifier l'existance du /boot au niveau de la sauvegarde dans le config.pl du client $Conf{RsyncShareName} = ['/','/home','/boot']; Pour la restauration complète du système en LVM on doit utiliser un RescueCD 1.1.4 qui support la création des partions LVM (Kernel 2.6..) Crée les partitions /boot en EXT3 et les autres partions LVM, les VL et les VG Crée un répertoire /mnt/target/boot et /mnt/target/home pour pouvoir restaurer les partition /boot et /home en tappant:
- mkdir -p /mnt/target/boot
- mkdir -p /mnt/target/home
- mount -t ext3 /dev/sda1 /mnt/target/boot
- mount /dev/testvg/root /mnt/target/
- mount /dev/testvg/home /mnt/target/home
………………………………………………………………………………………..
- 4‐ Particularités pour les serveurs virtuels (OpenVZ)
- Il suffit donc de backupper les machines hôtes à 100%... b. il faut juste préciser que quand on est en openvz et qu'on ajoute une machine virtuelle... y'a rien
- à ajouter dans les backups, elle est automatiquement backuppée
- concerné
- Pour un poste fixe : si c’est sous Mysql/NFS à ne pas backupper b. Pour le reste poste fixe ordinaire ou portable :
- A écrire la procédure pour les postes Windows, Ubuntu , MAC
- ii. Dire aux gens qu’on ne backup pas les mp3, films...
- L'idée c'est de mettre de temps en temps le contenu du backuppc sur des disques externes une fois par
- semaine par exemple
- - Il sera utile d'ajouter un cron qui fasse un "dump" complet des bases de données qui seront par la suite
- sauvegardées.
- Il suffit donc de backupper les machines hôtes à 100%... b. il faut juste préciser que quand on est en openvz et qu'on ajoute une machine virtuelle... y'a rien