Bacula è un programma per eseguire backup, ripristinare e verificare i dati attraverso la rete. Esistono client Bacula per Linux, Windows, e Mac OS X rendendolo una soluzione multi-piattaforma.
Bacula è composto da diversi componenti e servizi usati per la gestione dei file di cui eseguire il backup e dove eseguirlo:
Bacula Director: un servizio che controlla tutte le operazioni di backup, ripristino, verifica e di archiviazione.
Bacula Console: un'applicazione che consente di comunicare con "Director". Sono disponibili tre versioni:
Versione testuale per la riga di comando.
Versione grafica per GNOME basata su GTK+.
Interfaccia wxWidgets.
Bacula File: conosciuta anche come Bacula Client. Questa applicazione è installata nei computer di cui deve essere fatto il backup ed è responsabile dei dati richiesti dal Director.
Bacula Storage: il programma che esegue l'archiviazione e il ripristino sul dispositivo fisico.
Bacula Catalog: responsabile per mantenere l'indice dei file e il database di tutti i file, consentendo una facile localizzazione e ripristino. "Catalog" supporta tre diversi database: MySQL, PostgreSQL e SQLite.
Bacula Monitor: consente di monitorare i demoni "Director", "File" e "Storage". Attualmente "Monitor" è disponibile solo come applicazione GTK+.
Questi servizi e applicazioni possono essere eseguiti su molteplici server e client oppure possono essere installati su un solo computer se deve essere eseguito il backup di un singolo disco o volume.
Ci sono molteplici pacchetti che contengono i diversi componenti di Bacula. Per installare Bacula, in un terminale, digitare:
sudo apt-get install bacula
In modo predefinito, installando il pacchetto bacula viene usato un database MySQL per "Catalog". Se si vuole usare SQLite oppure PostgreSQL, installare bacula-director-sqlite3 o bacula-director-pgsql rispettivamente.
Durante il processo di installazione viene chiesto di fornire delle credenziali per l'amministratore del database e per il proprietario del database bacula. L'amministratore del database deve avere i diritti apporpriati per poter creare un database. Per maggiori informazioni, consultare la la sezione chiamata «MySQL».
I file di configurazione di Bacula sono formattati in base alle risorse composte da direttive marcate da parantesi «{}». Ogni compoenente di Bacula dispone di un file nella directory /etc/bacula
.
I diversi componenti di Bacula devono autorizzarsi tra di loro. Questo è fatto usando la direttiva password. Per esempio, la risorsa password di Storage nel file /etc/bacula/bacula-dir.conf
deve corrispondere alla risorsa password di Director nel file /etc/bacula/bacula-sd.conf
.
In modo predefinito, il lavoro di backup chiamato Client1 è confoigurato per archiviare il "Catalog" di Bacula. Se si intende usare il server per eseguire il backup di più di un client, è necessario modificare il nome del lavoro con qualche cosa di più descrittivo. Per fare questo, modificare il file /etc/bacula/bacula-dir.conf
:
# # Define the main nightly save backup job # By default, this job will back up to disk in Job { Name = "BackupServer" JobDefs = "DefaultJob" Write Bootstrap = "/var/lib/bacula/Client1.bsr" }
![]() |
|
L'esempio precedente modifica il nome del lavoro in BackupServer, in corrispondenza del nome host del computer. Sostituire «BackupServer» con il nome host appropriato o un altro nome descrittivo. |
Console può essere usato per interrogare Director riguardo i lavori, ma per poter usare "Console" con un utente non-root, l'utente deve essere nel gruppo bacula. Per aggiungere un utente al gruppo "bacula", in un terminale, digitare:
sudo adduser NOME_UTENTE bacula
![]() |
|
Sostituire NOME_UTENTE con il vero nome utente. Inoltre, se si sta aggiungendo l'utente corrente al gruppo, è necessario terminare la sessione e rientrarvi affinché le modifiche abbiano effetto. |
Questa sezione descrive come eseguire un backup di specifiche directory di un singolo host in un dispositivo a nastro locale.
Per prima cosa, Storage deve essere configurato. Modificare /etc/bacula/bacula-sd.conf
:
Device { Name = "Tape Drive" Device Type = tape Media Type = DDS-4 Archive Device = /dev/st0 Hardware end of medium = No; AutomaticMount = yes; # when device opened, read it AlwaysOpen = Yes; RemovableMedia = yes; RandomAccess = no; Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'" }
L'esempio è per un dispositivo a nastro DDS-4. Modificare "Media Type" e "Archive Device" affinché corrispondano al proprio hardware.
È possibile anche de-commentare uno degli altri file di esempio.
Una volta modificato il file /etc/bacula/bacula-sd.conf
, il demone Storage deve essere riavviato:
sudo /etc/init.d/bacula-sd restart
Ora aggiungere una risorsa Storage in /etc/bacula/bacula-dir.conf
per usare il nuovo "Device":
# Definition of "Tape Drive" storage device Storage { Name = TapeDrive # Do not use "localhost" here Address = backupserver # N.B. Use a fully qualified name here SDPort = 9103 Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj" Device = "Tape Drive" Media Type = tape }
La direttiva Address deve essere il "Fully Qualified Domain Name" (FQDN) del server. Modificare quindi backupserver col nome host attuale.
Inoltre, assicurarsi che la direttiva Password corrisponda alla stringa in /etc/bacula/bacula-sd.conf
.
Creare un nuovo FileSet, per determinare di quali directory eseguire il backup:
# LocalhostBacup FileSet. FileSet { Name = "LocalhostFiles" Include { Options { signature = MD5 compression=GZIP } File = /etc File = /home } }
Questa sezione FileSet farà in modo di eseguire il backup della directory /etc
e /home
. La direttiva Options configura "FileSet" per creare una somma MD5 per ogni file di cui è fatto il backup e per comprimere tali file con GZIP.
Creare una nuova sezione Schedule per il lavoro di backup:
# LocalhostBackup Schedule -- Daily. Schedule { Name = "LocalhostDaily" Run = Full daily at 00:01 }
Il lavoro verrà eseguito ogni giorno alle 00.01. Sono comunque disponibili molte altre opzioni di schedulatura.
Infine creare il Job:
# Localhost backup. Job { Name = "LocalhostBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "LocalhostFiles" Schedule = "LocalhostDaily" Storage = TapeDrive Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr" }
Questo lavoro crearà un backup Full (completo) ogni giorni sul dispositivo a nastro.
Ogni nastro usato deve avere una Label. Se il nastro corrente ne è sprovvisto, Bacula invierà un'email. Per aggiungere un'etichetta a un nastro usando Console, in un terminale, digitare:
bconsole
Al prompt di "Console" digitare:
label
Viene quindi chiesta la risorsa Storage:
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
The defined Storage resources are:
1: File
2: TapeDrive
Select Storage resource (1-2):2
Inserire il nome del nuovo Volume (volume):
Enter new Volume name: Sunday
Defined Pools:
1: Default
2: Scratch
Sostituire Sunday con l'etichetta desiderata.
Ora selezionare Pool:
Select the Pool (1-2): 1
Connecting to Storage daemon TapeDrive at backupserver:9103 ...
Sending label command for Volume "Sunday" Slot 0 ...
Bacula è ora configurato per eseguire backup del host locale su un dispositivo a nastro.
Per maggiori informazioni sulle opzioni di configurazione di Bacula, consultare il manuale di Bacula
Il sito di Bacula contiene le ultime notizie dello sviluppo di Bacula.
Consultare anche la documentazione di bacula online.