bacula & dedibox
Par Grumpf le mercredi, septembre 19 2007, 18:08 - geekage - Lien permanent
j'avais deja mis en place un backup "simple" avec bacula.
mais le systeme de ne me plaisait pas.
apres discution avec Tonio qui est bien plus systeme que moi,
en trois coup de cuillere a pot cétait décidé il fallait changer (oui c'était aussi pour ca que j'en discutais)
le backup se ferais donc sur des jeux de bande virtuel par type de backup.
encore une fois il y avait tout dans la doc et plus précisement la doc du director
commençons par faire un pool de bande par niveau de backup (Full / Differentielle / Incrementale / Catalogue )
Pool {
Name = Full
Pool Type = Backup
Recycle = yes # Recycle les volumes automatiquement
AutoPrune = yes # Prune (élague) les volumes expirés
Volume Retention = 1 week # 1 Semaine de rétention
Accept Any Volume = yes # accepte tout les volumes
Maximum Volume Jobs = 5 # 5 Jobs Maxi / Volumes (passe en Used auto)
Label Format = "File-Full-" # Auto Label File-Full-0001, File-Full-0002, ...
}
Pool {
Name = Diff
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 1 week
Accept Any Volume = yes
Maximum Volume Jobs = 5
Label Format = "File-Diff-"
}
Pool {
Name = Inc
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 1 week
Accept Any Volume = yes
Maximum Volume Jobs = 35
Label Format = "File-Inc-"
}
Pool {
Name = Catalog
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 1 week
Accept Any Volume = yes
Maximum Volume Jobs = 7
Label Format = "File-Catalog-"
}
une fois celle effectuer il faut indiquer quel pool utiliser pour quel level, dans le JobDefs on ajoute
Full Backup Pool = Full Differential Backup Pool = Diff Incremental Backup Pool = Inc
ce qui donne chez moi
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = tarhu-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = Default
Full Backup Pool = Full
Differential Backup Pool = Diff
Incremental Backup Pool = Inc
Priority = 10
}
puis on change le pool pour le catalog ( Full Backup Pool = Catalog )
Job {
Name = "backupCatalog"
JobDefs = "DefaultJob"
Level = Full
FileSet="Catalog"
Full Backup Pool = Catalog
Schedule = "WeeklyCycleAfterBackup"
# Dump du catalogue
RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula -ubacula -pbacula"
# depose sur dedibakup & supprime le bacula.sql.gz
RunAfterJob = "/usr/local/bin/storeOnDedibackup"
Write Bootstrap = "/var/lib/bacula/BackupCatalog.bsr"
Priority = 11 # run after main backup
}
un gros reload/restart du director et ca roule tout seul
le contenu du script storeOnDedibackup
#!/bin/bash
#
# 2007-08-27 Creation Pierre (http://www.grumpf.net)
#
for xfile in $(find /backup/ -name File-* -type f 2>>/dev/null)
do
if [ -s $xfile ] ; then
ncftpput -V -u auto -p " " dedibackup.dedibox.fr / $xfile
fi
done
[ -f /var/lib/bacula/bacula.sql.gz ] && rm /var/lib/bacula/bacula.sql.gz