[Guida] Backup del sistema o di directory specifiche con rsync
Su GNU/Linux esistono una miriade di software dedicati al backup. In questo articolo, ad esempio, vi ho parlato di Rdiffweb, un software open source per la gestione dei backup, che permette il ripristino degli archivi attraverso una navigazione semplificata. In questa mini guida, invece, vi mostrerò come utilizzare uno dei tool più utilizzati ed affidabili per il backup dei vostri dati, rsync.
Rsync: backup dell’intero sistema
In questa prima parte dell’articolo vi mostrerò la procedura per effettuare il backup del vostro intero sistema con il tool open source rsync. Copiare l’intero file system su un dispositivo esterno, infatti, è utile in quelle situazioni in cui si rende necessario riportare la macchina allo stato originale. Innanzitutto, inserite il supporto di backup, come una chiavetta USB o disco rigido esterno.
Trovate, quindi, la relativa lettera dell’unità utilizzando il comando fdisk -l e montate il file system in una directory a piacere, ad esempio:
sudo mount /dev/sdb1 /mnt
Eseguite, quindi, il backup dell’intero filesystem tramite la seguente istruzione. Da notare che vengono escluse una serie di directory tra cui quelle virtuali come proc. A tal proposito potete saperne di più visitando questo articolo dedicato qui su LFFL.
sudo rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt
Per ripristinare il sistema dalla copia di backup, tutto quello che dovrete fare è invertire la cartella sorgente (nell’esempio /) e quella di destinazione (ovvero /mnt).
Backup di directory selezionate
Effettuare la copia di un sistema completo, a volte, potrebbe risultare particolarmente dispendioso in termini di tempo e risorse. Potrebbe quindi risultare utile effettuare il backup con rsync solo di specifici file e cartelle rilevanti. Ecco, quindi, l’istruzione per effettuare un backup parziale con rsync:
$ rsync -avxP --delete --exclude-from=/home/ignore_list.txt #file contenente le cartelle da escludere /home/alessandro #cartella di cui effettuare il backup /media/device #directory di destinazione
Notate che si tratta di una singola istruzione che, per chiarezza di esposizione, è stata scomposta su più righe. Per quanto riguarda il file contenente le directory da escludere da eventuali backup, si tratta di un semplice file testuale contenente i path relativi delle cartelle, come nel seguente screenshot.
Essendo l’istruzione abbastanza complessa, potete creare uno script eseguibile da lanciare periodicamente. Create, quindi, un file backup.sh con il seguente contenuto da personalizzare:
#!/usr/bin/env bash rsync -avxP --delete --exclude-from=/home/ignore_list.txt /home /media/device
Rendete, quindi, il file eseguibile tramite chmod +x <path/backup.sh> ed eseguite lo script aprendo il terminate nella cartella di riferimento ed utilizzando la seguente istruzione ./backup.sh. È possibile, ovviamente, creare anche un alias per semplificare il richiamo dello script. In tal caso vi consiglio di visitare questa guida dedicata. Qui, invece, troverete un articolo per automatizzare il lancio dello script grazie a cron.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.