Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Si ricorda che questa applicazione è aggiornata all'ultima release ufficiale 3.5.4, pubblicata in novembre 2023. È ancora attivamente sviluppata ed è installabile anche nelle nuove release di Ubuntu.
Prestare molta attenzione alle configurazioni.

Amanda è uno strumento di backup che consente di effettuare copie di sicurezza dei dati residenti su server GNU/Linux e Windows da una sola macchina, con la possibilità di ricevere rapporti via email e poter usare supporti dischi anche CD/DVD.

È un programma molto rigido: infatti, prima bisogna eseguire il backup su cache e successivamente lo copia su disco fisso o cd/dvd. Amanda numera inoltre i supporti dischi esterni dando un'etichetta come da file di configurazione, pertanto andranno inserite una alla volta ed etichettate con l'apposito comando.

Nel caso mancassero i supporti cd/dvd esterni, verrà inviata una mail e il backup rimarrà nella cache, che aumenterà se non svuotata prima del successivo backup mediante terminale l'apposito comando:

amflush

Nell'esempio esposto in basso, server e client si chiameranno:

  • serverbck01 (indirizzo ip 192.168.1.254)

  • worktation01 (indirizzo ip 192.168.1.100).

Installazione

Lato Server

Installare i pacchetti amanda-client, amanda-server e xinetd.

Nel caso si voglia effettuare il backup su più workstation, è consigliata l'installazione di Samba poiché permetterà di includere nei client di Amanda anche macchine Windows. A questo scopo, installare i pacchetti samba, cifs-utils e smbclient.

Lato client

Installare il pacchetto amanda-client.

Configurazione

Configurazione xinetd (server e client)

Come primo passo, bisogna configurare xinetd in entrambi i computer .

  1. Se non fosse già presente, modificare con i privilegi di amministratore e con un editor di testo il file /etc/xinetd.d/amanda aggiungendo alla fine le seguenti righe:

    service amanda
    {
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = $USER
    group           = $GROUP
    groups          = yes
    server          = /usr/lib/amanda/amandad 
    }
    
    service amandaidx
    {
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = $USER
    group           = $GROUP
    server          = /usr/lib/amanda/amandad
    }
    
    service amidxtape
    {
    socket_type     = stream
    protocol        = tcp
    wait            = no
    user            = $USER
    group           = $GROUP
    server          = /usr/lib/amanda/amandad
    }
    • I percorsi esatti per amandad potrebbero variare (ad esempio, /usr/sbin/amandad o /usr/local/lib/amanda/amandad).
      Utilizzare whereis amandad o find / -name amandad per individuare il percorso corretto sul sistema in uso. L'utente $USER e il gruppo $GROUPda usare sono solitamente l'utente di sistema creato da Amanda durante l'installazione.

  2. Creare le cartelle e i file necessari:
    • Percorso comune per i file di gnutar:

        sudo mkdir -p /var/lib/amanda/gnutar-lists
    • Per la cache temporanea di Amanda:

        sudo mkdir -p /var/spool/amanda/tmp
    • Inizializza il file delle date, Amanda lo gestirà in seguito:

        sudo touch /etc/amandates
  3. Settare i permessi di scrittura:

    • Impostare i permessi corretti per le directory principali di Amanda:

        sudo chown -R $USER:$GROUP /var/lib/amanda /var/log/amanda /var/spool/amanda
    • Assicurarsi che l'utente $USER possa scrivere anche in /etc/amandates:

        sudo chown $USER:$GROUP /etc/amandates

Configurazione Amanda

Alcuni di questi file potrebbero essere creati automaticamente da Amanda al primo avvio, ma è buona norma assicurarne l'esistenza e i permessi corretti.

  1. Modificare con i privilegi di amministratore e con un editor di testo il file /etc/amandahosts. Questo file definisce quali host e utenti sono autorizzati a connettersi al server Amanda. Dovrà avere una struttura come la seguente:

    localhost $USER
    localhost root
    localhost.localdomain $USER
    localhost.localdomain root
    serverbck01   $USER
    serverbck01   root
    worktation01   $USER
    worktation01   root

    Sostituire l'utente $USER, con l'utente di sistema utilizzato da Amanda. Questa configurazione permette agli utenti $USER e root degli host specificati di eseguire operazioni Amanda.

  2. Modificare con i privilegi di amministratore e con un editor di testo il file /etc/amanda/DailySet1/exclude.gtar in cui si indicheranno le cartelle e i file da escludere dal backup. Ad esempio, per evitare il backup dei file temporanei, della cartella lost+found, dei file .mp3, dei file .avi e della /home/no_backup aggiungere le righe:

    tmp
    lost+found
    /var/spool/amanda/
    *.mp3
    *.avi
    /home/no_backup

    Queste direttive indicano a gtar (GNU Tar) quali pattern e percorsi ignorare durante il backup.

  3. Aggiornare i seguenti file. Questi comandi assicurano che i file di stato e log di Amanda esistano e siano pronti per essere utilizzati dall'utente $USER.

    • Assicurarsi che le directory genitore (/var/lib/amanda/DailySet1/, /var/log/amanda/DailySet1/) esistano già o vengano create, e che i permessi siano corretti per l'utente $USER:

        sudo touch /etc/amanda/DailySet1/tapelist.amlabel
        sudo touch /etc/amanda/DailySet1/tapelist.yesterday
        sudo touch /etc/amanda/DailySet1/tapelist
        sudo touch /var/lib/amanda/DailySet1/curinfo
        sudo touch /var/log/amanda/DailySet1/log   
        sudo touch /var/lib/amanda/DailySet1/index
        sudo mkdir -p /var/spool/amanda/tmp
    • Impostare i permessi corretti per l'utente e gruppo di sistema:

        sudo chown $USER:$GROUP /etc/amanda/DailySet1/tapelist*
        sudo chown $USER:$GROUP /var/lib/amanda/DailySet1/*
        sudo chown $USER:$GROUP /var/log/amanda/DailySet1/*
        sudo chown -R $USER:$GROUP /var/spool/amanda/tmp
  4. Modificare con i privilegi di amministratore e con un editor di testo il file /etc/amanda/DailySet1/disklist in cui si indicherà l'elenco delle cartelle da copiare. Ogni riga specifica un host, un percorso da backuppare e un tipo di dump (es. comp-user-tar per compressione e tar). Ad esempio:

    serverbck01 /etc  comp-user-tar
    serverbck01 /etc  comp-user-tar
    worktation01 /etc  comp-user-tar
    worktation01 /home comp-user-tar
    worktation01 /home/utente/filedacopiare comp-user-tar
    • Se un host viene specificato più volte con lo stesso percorso, Amanda lo tratterà come un unico DLE - Dump List Entry. L'esempio serverbck01 /etc ripetuto due volte è ridondante a meno che non si vogliano applicare configurazioni diverse a DLE separati che puntano allo stesso percorso, cosa che richiederebbe una sintassi più avanzata.

Client Windows

Nel caso fosse presente un client Windows (che si chiamerà workstation02) procedere come segue:

  1. Montare la cartella Samba condivisa in una cartella apposita.
  2. Creare la directory di mount:

     sudo mkdir -p /home/bck_smb
    Quindi, montare la condivisione:
    • Opzione 1: Montaggio manuale (per test o temporaneo):

        sudo mount -t cifs //workstation02/SharedDocs /home/bck_smb -o username=utente,password=secret,uid=backup,gid=backup,file_mode=0660,dir_mode=0770
      • uid=backup,gid=backup assicura che l'utente backup possa accedere alla condivisione. file_mode e dir_mode impostano i permessi.

    • Opzione 2: Montaggio persistente tramite /etc/fstab (raccomandato per backup automatici): Modificare il file /etc/fstab aggiungendo la seguente riga. È consigliabile usare un file credenziali per la password, per motivi di sicurezza, piuttosto che scriverla direttamente in fstab:

        //workstation02/SharedDocs    /home/bck_smb   cifs   credentials=/etc/samba/workstation02.cred,uid=backup,gid=backup,file_mode=0660,dir_mode=0770  0 0

      Esempio di file credenziali /etc/samba/workstation02.cred (proteggerlo con sudo chmod 600 /etc/samba/workstation02.cred):

        username=utente
        password=secret
  3. Aggiungere al file /etc/amanda/DailySet1/disklist la seguente stringa per includere la condivisione Samba nel backup:

     serverbck01 /home/bck_smb  comp-user-tar

Altre configurazioni (unità a nastro, compressione, ecc.)

Scaricare il file di configurazione di esempio del set di backup e spostarlo sotto la cartella /etc/amanda/DailySet1/ rinominandolo come amanda.conf.

Il nome attivo per Amanda è solitamente amanda.conf o quello specificato nel comando amdump.
Sarà necessario adattare questo file amanda.conf inserendo, se non presenti, una sezione per le dimensioni dell'unità a nastro (o del DLE per il disco), impostare i tipi di dump, l'email per i rapporti e altri dati necessari. Aiutarsi con i commenti presenti nel file di esempio per una corretta configurazione. Spesso le dimensioni e i dati specifici per l'unità a nastro (tape) in uso o per i dischi (se si effettua il backup su disco) possono essere trovate direttamente su Internet, evitando il controllo lentissimo di Amanda tramite amtapetype.

  1. Impostare i servizi necessari ad Amanda per funzionare in background. A tal fine, verificare nel file di sistema /etc/services che le porte di Amanda siano definite correttamente. Il file contiene la mappatura tra nomi di servizio e numeri di porta. Se Amanda è installato dai pacchetti di Ubuntu, queste voci dovrebbero essere già presenti. Se non lo fossero, modificare con i privilegi di amministratore e con un editor di testo il file /etc/services e aggiungere le seguenti righe:

    amanda          10080/udp       # Amanda backup service
    amandaidx       10082/tcp       # Amanda index service
    amidxtape       10083/tcp       # Amanda tape index service
    Salvare il file. Queste porte sono standard per Amanda e consentono la comunicazione tra i componenti.
  2. Aggiungere in /etc/crontab le seguenti righe in modo da pianificare i comandi di Amanda. Questi esempi pianificano un controllo di integrità (amcheck) e un dump completo (amdump). Con i privilegi di amministratore e con un editor di testo editar come segue:

    # Pianificazione dei backup Amanda (eseguito come utente root)
    0 16 * * 1-5   root    /usr/sbin/amcheck -m DailySet1
    45 0 * * 1-5   root    /usr/sbin/amdump DailySet1
  3. Effettuare una verifica finale della configurazione ed eventualmente creare le cartelle o settare i permessi come richiesto dal controllo. Eseguire questo comando come root o con sudo:

     /usr/sbin/amcheck DailySet1
    Questo comando è fondamentale per individuare errori di configurazione, permessi o problemi di connettività prima di eseguire un backup.

Esempi di Pianificazione

Orari pianificazione

Orario

Descrizione

0 16 * * 1-5

esegue amcheck alle 16:00 (0 minuti, 16 ore) da lunedì a venerdì (1-5). L'opzione -m invia un'email in caso di errore.

45 0 * * 1-5

esegue amdump alle 00:45 (45 minuti, 0 ore) da lunedì a venerdì.

root

indica che i comandi saranno eseguiti dall'utente root.

Le indicazioni per i giorni della settimana sono: 0 o 7 per domenica, 1 per lunedì, ..., 6 per sabato.

Funzionamento

Tutti i comandi di Amanda per la gestione dei backup (es. amlabel, amdump, amflush, amrecover) devono essere eseguiti dall'utente creato automaticamente per Amanda. Quindi, per procedere con i privilegi di amministratore, digitare in un terminale il seguente comando:

su - $USER

L'opzione - dopo su avvia una shell di login per l'utente $USER creato appositamente per Amanda. In alternativa, si può usare sudo -u $USER <comando_amanda> per eseguire singoli comandi come l'utente backup senza cambiare shell.

Ora si utilizzeranno i seguenti comandi (eseguiti come utente $USER):

  •  amtapetype -e 100g -f <device>

    Verifica le dimensioni del tape (nastro) calcolando il tempo stimato per una dimensione di 100 Gb. L'opzione -e 100g può essere omessa se si vuole che Amanda stimi le dimensioni automaticamente. <device> dovrebbe essere il percorso al dispositivo nastro (es. /dev/nst0) o il nome del DLE configurato se si fa backup su disco.

  •  amlabel DailySet1 <etichetta_nastro>

    Etichetta le cassette/nastri (o i file su disco nel caso di backup su disco). L'etichetta è il nome che Amanda assegnerà al volume. Ripetere il comando per ogni nastro/volume. Esempio: amlabel DailySet1 DailySet1-001.

  •  amcheck DailySet1
    Esegue una prova di controllo della configurazione e dello stato del tape/disco. Fondamentale prima di ogni backup.
  •  amdump DailySet1

    Esegue il backup dei dati configurati nel set DailySet1.

  •  amverify DailySet1
    Verifica i dati scritti sul nastro/disco dopo il backup, controllandone l'integrità.
  •  amflush DailySet1

    Svuota la cache di Amanda. Utile in caso di errori nel backup (es. cassetta mancante o sbagliata) per ripulire i dati rimasti nella cache prima del successivo backup. Specificare il set di configurazione (es. DailySet1).

Per recuperare i dati ci sono tre possibilità, utilizzando il comando amrecover:

  1. Utilizzare una shell interattiva amrecover. È il metodo più flessibile per recuperi specifici:

     su - backup -c "amrecover DailySet1"
    # Oppure, se già come utente backup:
    amrecover DailySet1
             sethost nomehost             # L'hostname del client di cui si vuole recuperare i dati (es. worktation01)
             setdisk /path/pathdarecuperare # Il punto di mount o il DLE di cui si vuole recuperare il dato (es. /home)
             add nomefiledarecuperare     # Aggiunge il file o la directory al "carrello" di recupero (es. /home/utente/documento.txt)
             lcd /recovery                # Cambia la directory locale dove i file verranno recuperati (sul server Amanda)
             extract                      # Avvia il processo di estrazione
    • È buona pratica creare la directory /recovery in un percorso sicuro con permessi adeguati prima del recupero.

  2. Dare un comando di shell semi-interattiva (meno comune e più specifico):

    # Questo comando richiede il nome corretto del nastro/volume e il DLE ID del backup.
    # Si consiglia cautela e conoscenza approfondita prima di usarlo.
    # Esempio:
    amrestore -p /dev/nst0 serverbck01 /etc | restore -ivbf 2 -
    • -p /dev/nst0 indica il dispositivo nastro. serverbck01 è l'host, /etc è il DLE. restore è un comando generico di ripristino, e i suoi parametri variano.

  3. Dare il comando seguente che è quello più semplice per un ripristino completo di un DLE, ma meno granulare:

    # Questo comando recupererà tutti i dati del DLE specificato dal nastro.
    # Esempio:
    amrestore /dev/nst0 serverbck01 /home

    Quest'ultimo effettuerà un restore completo di un DLE (ad esempio, della cartella /home di serverbck01) presente sul supporto esterno. Per uscire dalla modalità di ascolto dopo un amrestore senza specificare un DLE, premere Ctrl+D.

Ulteriori risorse


CategoryAmministrazione