Backup dei dati con procedura automatizzata
Avere una copia di backup dei dati è essenziale perché può sempre capitare che un disco si rovini, oppure che l'utente cabcelli involontariamente uno o più file che invece gli risultano poi utili o addirittura indispensabili. Mi è capitato spesso di essere assediato da un collega che non trovava più intere cartelle: col sistema di drag 'n drop di windows aveva inavvertitamente spostato intere cartelle chissà dove. In questi casi un backup è davvero essenziale.
Quali dati?
Prima di tutto è importante definire quali sono i dati da salvare:
- le cartelle home degli utenti
- eventuali cartelle condivise tra più utenti (quelle delle classi, quelle di competenza dei docenti, etc...)
- la cartella /etc per salvare le configurazioni
- la cartella /var/www/http che contiene il sito della Intranet
- etc...
Dove li salvo?
I dati possono essere salvati in automatico sul disco fisso del file server in una cartella qualsiasi, in una partizione abbastanza capiente da contenerli tutti, tipicamente /home/backup.
Fatto ciò è opportuno definire in /etc/samba/smb.conf una share in modo che un utente del gruppo admin possa all'occorrenza ripristinare i dati da qualsiasi client windows, senza dover per forza accedere al server direttamente o via ssh. In questo modo è molto più semplice e veloce ripristinare i dati, senza conoscere la password di root.
Script che automatizza la copia dei dati
La script è estremamente semplice, in quanto si limita ad utilizzare due comandi della bash. In particolare il comando cp e il comando chown.
Poniamo di avere le seguenti cartelle da copiare:
- /home/alunni
- /etc
- /home/docenti
- /home/admins
- /home/dati
- /home/classi
Per copiarle occorre scrivere in un file di testo i seguenti comandi:
cp -audR /home/alunni /home/backup/
cp -audR /etc /home/backup/
cp -audR /home/docenti /home/backup
cp -audR /home/admins /home/backup
cp -audR /home/dati /home/backup
cp -audR /home/classi /home/backup
Il comando cp ha molti argomenti utili, in particolare quelli usati sono:
- -a (archive), che permette di copiare il file come archivio, senza modificarne i permessi
- -u (update), che copia il file solo se più recente di quello che si trova eventualmente nella destinazione
- -d (no dereference), che evita che vengano seguiti i link simbolici
- -R (recursive), che copia ricorsivamente il contenuto della cartella e delle sottocartelle
--
FabioFrittoli - 29 Jul 2021