## page was renamed from Amanda
## page was renamed from guida ad amanda
## da spostare sotto AmministrazioneSistema/BackupDelSistema
#format wiki
#language it
<
>
<>
<>
= Introduzione =
{{{#!wiki important
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 [[AmministrazioneSistema/Terminale|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 ==
[[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt:amanda-client | amanda-client]], [[apt://amanda-server | amanda-server]] e [[apt://xinetd | xinetd]].
{{{#!wiki note
Nel caso si voglia effettuare il backup su più workstation, è consigliata l'installazione di '''[[Server/Samba|Samba]]''' poiché permetterà di includere nei client di '''Amanda''' anche macchine Windows. A questo scopo, installare i pacchetti [[apt://samba | samba]], [[apt://cifs-utils | cifs-utils]] e [[apt://smbclient | smbclient]].
}}}
== Lato client ==
[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt:amanda-client| amanda-client]].
= Configurazione =
== Configurazione xinetd (server e client) ==
Come primo passo, bisogna configurare '''xinetd''' in entrambi i computer .
0. Se non fosse già presente, modificare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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
}
}}}
{{{#!wiki note
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 `$GROUP`da usare sono solitamente l'utente di sistema creato da Amanda durante l'installazione.
}}}
0. 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
}}}
0. Settare i [[AmministrazioneSistema/PermessiFile|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 ==
{{{#!wiki important
Alcuni di questi file potrebbero essere creati automaticamente da Amanda al primo avvio, ma è buona norma assicurarne l'esistenza e i permessi corretti.
}}}
0. Modificare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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.
0. Modificare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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.
0. 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
}}}
0. Modificare con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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
}}}
{{{#!wiki note
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:
0. Montare la cartella Samba condivisa in una cartella apposita.
{{{#!wiki note
Si raccomanda l'uso di `mount -t cifs` o la [[Hardware/DispositiviPartizioni/MontarePartizioni|configurazione di montaggio partizioni]] in `/etc/fstab` con il filesystem `cifs` (che ha sostituito `smbfs`).
}}}
0. 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
}}}
{{{#!wiki note
`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
}}}
0. 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.) ==
[[attachment:amanda.conf|Scaricare]] il file di configurazione di esempio del set di backup e spostarlo sotto la cartella `/etc/amanda/DailySet1/` rinominandolo come `amanda.conf`.
{{{#!wiki note
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`.
}}}
0. 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 [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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.
0. 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 [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]] e con un [[Ufficio/EditorDiTesto|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
}}}
0. 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'''||
||<:30%> '''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 [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministratore]], digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
su - $USER
}}}
{{{#!wiki important
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 ` 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
}}}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. `` 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 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`:
0. 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
}}}
{{{#!wiki note
È buona pratica creare la directory `/recovery` in un percorso sicuro con permessi adeguati prima del recupero.
}}}
0. 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 -
}}}
{{{#!wiki note
`-p /dev/nst0` indica il dispositivo nastro. `serverbck01` è l'host, `/etc` è il DLE. `restore` è un comando generico di ripristino, e i suoi parametri variano.
}}}
0. 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 =
* [[http://www.amanda.org|Sito ufficiale del progetto]]
----
CategoryAmministrazione