Backup Axigen mail server con Bacula o Bacula Enterprise

Axigen è un server di posta con funzionalità di grupware (calendario,rubrica,condivisione ecc), tutti gli archivi vengono tenuti in /var/opt/axigen/domains , si tratta di archivi binari in formato proprietario, non è quindi possibile effettuare backup incrementali/differenziali corretti salvando tale directory, ne effettuare il restore di specifiche caselle.

Per questo motivo axigen mette a disposizione un’interfaccia FTP con la quale è possibile accedere ai dati del dominio e delle caselle ed effettuare backup e restore delle singole caselle. Su Linux si può automatizzare l’accesso all’FTP tramite FUSE (filesystem in user space), quindi “montare” tale accesso ftp ed accederci come se fossero normali directory/file che quindi Bacula potrà facilmente salvare.

 

1) Abilita il servizio di backup FTP su axigen seguendo le indicazioni ufficiali:

http://www.axigen.com/knowledgebase/How-To-enable-the-FTP-Backup-service_116.html

 

2) Nel server axigen installa i pacchetti fuse ed expect (esempio per RedHat/Centos):

yum install fuse fuse-devel fuse-libs expect

 

3) Crea/modifica /etc/fuse.conf aggiungendo:

 

user_allow_other

 

 

4) Crea lo script di mount /etc/bacula/scripts/mount_axigen_storage:

#!/usr/bin/expect

set timeout 5
set exp_internal 1

spawn telnet localhost 7000

expect “<login> ”
send “user admin\r”

expect “<password> ”
send “ADMINPASSWORD\r”

expect “<#> ”
send “config server\r”

expect “<server#> ”
send “config ftp-backup\r”

expect “<server-ftpBackup#> ”
send “FILESYSTEM mount /mnt/axigen domain MY.MAILSERVER.COM \r”

expect “<server-ftpBackup#> ”
send “quit\r”

interact

 

esegui:

mkdir /mnt/axigen

chmod 755 /etc/bacula/scripts/mount_axigen_storage

 

5) Crea lo script di umount /etc/bacula/scripts/umount_axigen_storage:

#!/bin/bash

umount /mnt/axigen/

esegui:

chmod 755 /etc/bacula/scripts/umount_axigen_storage

 

6) Modifica la configurazione di bacula aggiungendo il job specifico, esempio:

Job {
Name = “axigen”
Client = axigen-fd
JobDefs = “default”
FileSet = “axigen-filesystem”
Schedule = “myschedule”
Storage = DISK
# ftp mount
Client Run Before Job = “/etc/bacula/scripts/mount_axigen_storage”
# umount
Client Run After Job = “/etc/bacula/scripts/umount_axigen_storage”
}

 

7) modifica il fileset aggiungendo il backup di /mnt/axigen, ecco un esempio di fileset:

# axigen
FileSet {
Name = “axigen-fileset”
Include {
Options {
signature = MD5
compression = GZIP
onefs = no
}

File = /etc
File = /boot
File = /home
File = /root
File = /opt
File = /var
File = /mnt/axigen
File = /var/opt/axigen/log
}
Exclude {
File = /var/opt
File = /var/log
File = /var/spool
File = /var/tmp
File = /var/cache
File = /var/lib/apt
File = /var/run
File = /var/lock
File = /var/mail
File = /var/games
File = /var/lib/bacula
File = /var/opt/axigen/domains
}
}

8) Infine ricarica bacula per applicare le modifiche.

# bconsole

* reload

9) esegui alcuni job di prova prima di mettere in produzione il tutto.

Davide Giunchi

About the Author

Comments are closed.