Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !



Bacula : sauvegarder régulièrement son PC

Bacula est un logiciel open source de sauvegarde professionnel. Il permet de sauvegarder le contenu d'un PC, ou plusieurs PC en réseau.

Bacula dispose de très nombreuses fonctionnalités. Utilisé correctement vous serez toujours certain de pouvoir restaurer n'importe quel fichier, à n'importe quel date (retrouver un texte par exemple tel qu'il était rédigé il y a deux mois, sachant que vous l'avez modifié 10 fois depuis etc.)

MAIS SA CONFIGURATION FINE NÉCESSITE DE NOMBREUSES CONNAISSANCES PROPRES AU MONDE DE LA SAUVEGARDE.

Cette page ne pourra jamais vous dispenser d'aller jeter un coup d'oeil au manuel (en français) situé ici.

FIXME

Il y a un léger bug dans le paquetage bacula avec ubuntu 9.04 (jaunty). Il ne faut pas installer en même temps MySQL et Bacula (ou l'initialisation de MySQL se fait APRES celle de Bacula). Par conséquent, il est recommandé d'installer d'abord MySQL et Bacula dans un deuxième temps

FIXME

Ce tutoriel est destiné à ceux qui souhaitent sauvegarder automatiquement leur configuration et leurs fichiers, afin de ne rien perdre en cas de crash disque, de corruption de données (ou simplement de suppression de fichiers trop rapide).

Il est possible de sauvegarder sur des bandes magnétiques ou des DVD, mais étant donné le prix d'un lecteur de bandes, nous allons utiliser une méthode moins coûteuse : un second disque dur (quelques centaines de Go, ce qui dans une optique de sauvegarde personnelle est largement suffisant.)

Préparation

installation optionnelle

Afin de pouvoir être averti par mail que la sauvegarde a été effectuée ou des problèmes éventuels, installer :

installation du second disque dur

Je suppose ici que le second disque dur est monté sur /dev/sdb2 (c'est à dire le second port IDE)

  1. création du répertoire où seront stockés les fichiers de sauvegarde : /opt/SAUVEGARDE

sudo mkdir /opt/SAUVEGARDE

  1. création de la partition xfs et formatage du deuxième disque dur avec gparted
  2. éditer /etc/fstab (sudo gedit /etc/fstab) et ajouter :

/dev/sdb2 /opt/SAUVEGARDE xfs defaults 0 1

Attention avec l'utilisation de gparted ! Ne vous trompez pas de disque dur où vous aller formater votre propre installation d'Ubuntu !

Normalement il est maintenant possible de monter le second disque dur : sudo mount /opt/SAUVEGARDE

Si vous avez une erreur en entrant cette commande, il est inutile d'aller plus loin. Il vous faut corriger le problème.

Configuration de Bacula

Niveau de sauvegarde pour bacula

Totale (Full) Une sauvegarde complète (autrement dit de tout ce qui est dans les répertoires listés). Attention si vous medifies la liste des fichiers/repertoires a sauvegarder dans /etc/bacula/bacula-dir.conf, une sauvegarde totale va etre effectuee la premiere fois.

Differentielle (Differential) Une sauvegarde qui inclut tous les fichiers modifiés depuis le lancement de la dernière sauvegarde complète (Full). Notez que d'autres logiciels de sauvegarde peuvent définir ceci différemment.

Incrementale (Incremental) Une sauvegarde qui inclut tous les fichiers modifiés depuis le lancement de la dernière sauvegarde complète (Full), différentielle, ou incrémentale. Normalement spécifié dans la directive Level (niveau) dans la définition de la ressource Job, ou dans une ressource Schedule.

pour plus de detail voir http://www.bacula.org/fr/dev-manual/Qu_est_ce_que_Bacula.html

édition de /etc/bacula/bacula-dir.conf

éditez /etc/bacula/bacula-dir.conf dans JobDefs ajouter

JobDefs {
....
# cf http://www.bacula.org/en/dev-manual/Automated_Disk_Backup.html
Full Backup Pool = Full-Pool
Incremental Backup Pool = Inc-Pool
Differential Backup Pool = Diff-Pool
# fin modif 
......
}

- définition du 1er Job de sauvegarde

Job {
Name = "BackupConti"
JobDefs = "DefaultJob"
Write Bootstrap = "/opt/SAUVEGARDE/bacula/Client1.bsr"
}

- où seront créées les restaurations

Job {
Name = "RestoreFiles"
#changer la ligne ci-dessous
Where = /opt/SAUVEGARDE/bacula-restores

- ce qu'on va sauver

FileSet {  Name = "Full Set"
Include {
  Options {
    signature = MD5
    compression=GZIP
  }
  File = /etc
  File = /home/mon nom d'utilisateur
  File = /home/mon second utilisateur

- ce qu'on ne veut pas sauver

Exclude {
#    File = /proc
#    File = /tmp
  File = /home/mon nom d utilisateur/tmp
  File = /home/mon nom d utilisateur/Modèles
  File = /home/mon nom d utilisateur/.thumbnails
  File = /home/mon nom d utilisateur/.mozilla/firefox/e3s99zut.default/Cache
  File = /home/hmon nom d utilisateur/.gimp-2.6
  File = /home/mon nom d utilisateur/.google
  File = /home/mon nom d utilisateur/.googleearth
  File = /home/mon nom d utilisateur/.local/share/Trash/
#    File = /.journal
#    File = /.fsck
}

.local/share/Trash/ est la corbeille

.mozilla/firefox/e3s99zut.default/Cache est le cache du navigateur

.thumbnails est pour les photos

- met les sauvegardes à des heures ou le PC est allumé

Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 19:05
Run = Differential 2nd-5th sun at 19:05
Run = Incremental mon-sat at 19:05
}

- C'est la sauvegarde de la base de données. C'est avec celle-ci que Bacula peut savoir quel fichier a été sauvé à quel moment. En cas de perte de la base de données (par ex. en cas de crash disque) il est nécessaire d'avoir une copie de celle-ci

# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 19:20
}

- Les bootstrap sont ce qui vont permettre de restaurer en cas de perte de données. on les met sur la partition de sauvegarde

Write Bootstrap = "/opt/SAUVEGARDE/bacula/BackupCatalog.bsr"
Write Bootstrap = "/opt/SAUVEGARDE/bacula/Client1.bsr"

- Remplace <CatalogName> par le vrai nom (MyCatalog) pour le dump de la base de donnée MySQL dans le code ci dessous :

Job {
# WARNING!!! Passing the password via the command line is insecure.
# see comments in make_catalog_backup for details.
# Arguments to make_catalog_backup are:
#  make_catalog_backup <database-name> <user-name> <password> <host>
#
# Ubuntu uses make_catalog_backup_awk script for
# security reasons
# Replace <CatalogName> with the real Catalog name
# 
#autrement dit mettre cat1=MyCatalog dans la ligne ci dessous
RunBeforeJob = "/usr/bin/awk -f /etc/bacula/scripts/make_catalog_backup_awk -v cat1=MyCatalog /etc/bacula/bacula-dir.conf"
-----
}
En cas d'oubli de cette étape, vous avez un message d'erreur "Could not stat /var/lib/bacula/bacula.sql: ERR=No such file or directory" dans le mail après la sauvegarde.

- met l'utilisateur qui va bien pour les mails

mail = mon_nom_utilisateur@localhost = all, !skipped
operator = mon_nom_utilisateur@localhost = mount
définit les pools de sauvegarde

ajouter les lignes suivantes (cf http://www.bacula.org/en/dev-manual/Automated_Disk_Backup.html)

pour la sauvegarde totale

Pool {
Name = Full-Pool
Pool Type = Backup
Recycle = yes           # automatically recycle Volumes
AutoPrune = yes         # Prune expired volumes
Volume Retention = 6 months
Maximum Volume Jobs = 1
Label Format = Full-
#  Maximum Volumes = 9
}

pour la sauvegarde incrémentale

Pool {
Name = Inc-Pool
Pool Type = Backup
Recycle = yes           # automatically recycle Volumes
AutoPrune = yes         # Prune expired volumes
Volume Retention = 20 days
Maximum Volume Jobs = 6
Label Format = Inc-
Maximum Volumes = 7
}

et différentielle

Pool {
Name = Diff-Pool
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 40 days
Maximum Volume Jobs = 1
Label Format = Diff-
Maximum Volumes = 10
}

édition de /etc/bacula/bacula-sd.conf

éditez /etc/bacula/bacula-sd.conf donner le path ou seront stockés les fichiers

Device {
Name = FileStorage
Archive Device = /opt/SAUVEGARDE/bacula
Le device FileStorage est déjà défini dans bacula-dir.conf comme l'endroit ou va se faire la sauvegarde

configuration de l'utilisateur

Afin que l'utilisateur puisse avoir accès à la console Bacula, il doit être dans le groupe (au sens unix du terme) bacula

adduser  mon_nom_utilisateur bacula

création des chemins d'accès avec les droits qui vont bien

sudo mkdir /opt/SAUVEGARDE/bacula
sudo chown -R bacula /opt/SAUVEGARDE/bacula
sudo chgrp -R bacula /opt/SAUVEGARDE/bacula
sudo mkdir /opt/SAUVEGARDE/bacula-restores
sudo chgrp bacula /opt/SAUVEGARDE/bacula-restores
sudo chown bacula /opt/SAUVEGARDE/bacula-restores

recopie des fichiers de configuration de Bacula

Cette étape est utile en cas de crash disque (ie la totalité de la configuration de Bacula est perdue)

sudo cp /etc/bacula/*.conf /opt/SAUVEGARDE

redémarrer Bacula

sudo /etc/init.d/bacula-director restart
sudo  /etc/init.d/bacula-fd restart
sudo  /etc/init.d/bacula-sd restart

lancer l'interface graphique de bacula

Bacula lui même est un outil en ligne de commande mais un autre outil permet d'utiliser une interface graphique Pour cela il suffit de taper dans un terminal

bat -c /etc/bacula/bat.conf 
Dans le menu Applications / Outils système, le raccourci est faux (pour jaunty au moins)
Pour modifier le raccourci , entrer la commande suivante dans un terminal :
alacarte

Dans Outils système, sélectionner bat et remplacer /usr/sbin par /usr/bin

A partir de cette interface graphique vous pouvez tester si votre installation fonctionne en effectuant une sauvegarde (vous devriez recevoir un mail à la fin) et en effectuant une restauration (qui sera dans /opt/SAUVEGARDE/bacula-restores)

  • bacula.1255805435.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)