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 .
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.
- 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
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.
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.
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.
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
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:
- Montare la cartella Samba condivisa in una cartella apposita.
Si raccomanda l'uso di mount -t cifs o la configurazione di montaggio partizioni in /etc/fstab con il filesystem cifs (che ha sostituito smbfs).
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
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.
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.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
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:
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.
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.
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.
