Questa guida non è stata ancora completamente tradotta. Se vuoi contribuire alla sua traduzione contatta il Gruppo Traduzione di Ubuntu-it.

Bacula

Bacula is a backup program enabling you to backup, restore, and verify data across your network. There are Bacula clients for Linux, Windows, and Mac OS X - making it a cross-platform network wide solution.

Panoramica

Bacula is made up of several components and services used to manage which files to backup and backup locations:

  • 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.

Installazione

If using MySQL or PostgreSQL as your database, you should already have the services available. Bacula will not install them for you.

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 MySQL.

Configurazione

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.

Backup locale

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'"
    }
    

    The example is for a DDS-4 tape drive. Adjust the “Media Type” and “Archive Device” to match your 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 = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyjc"
      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
      }
    }
    

    This FileSet will backup the /etc and /home directories. The Options resource directives configure the FileSet to create an MD5 signature for each file backed up, and to compress the files using 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.

Risorse