## 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