Rsnapshot Backup a riga di comando

Rsnapshot Backup a riga di comando

Rsnapshot Backup a riga di comando

#Rsnapshot Backup incrementali a riga di comando
rsnapshot e’ un utile software per effettuare backup incrementali, grazie all’utilizzo di rsync ed il tutto da riga di comando.

RSNAPSHOT
I software in commercio, in grado di effettuare backup incrementali del nostro sistema operativo oppure delle nostre directory preferite, sono molti e vari. Ad esempio per effettuare backup incrementali su Linux possiamo utilizzare Back In Time, Kup, Duplicati, TimeShift ecc. Per gli utemti che utilizzano Server Linux ma che preferiscono operare da terminale esiste rsnapshot, progetto open source che ci consente di effettuare backup incrementali grazie al tool rsync.

Attraverso rsnapshot possiamo effettuare backup incrementali di filesystem locali e remoti con numerose ed utili funzionalità.

Installare rsnapshot in Debian/Ubuntu e derivate è semplicissimo basta digitare da terminale:

sudo apt-get install rsnapshot

una volta installato dovremo operare sul file di configurazione in /etc/rsnapshot.conf
Configurazione

Per configurare rsnapshot è necessario aprire il file /etc/rsnapshot.conf con un editor di testo con i privilegi di amministrazione.

Ogni riga del file di configurazione dovrà contenere elementi separati dal carattere Tab e non dovrà contenere spazi. Non è quindi consigliabile fare il copia ed incolla delle seguenti istruzioni:

La seguente direttiva specifica la cartella di destinazione dei backup:

rsnapshot_root   /media/backup/
no_create_root 1

Si supponga di effettuare il backup tutti i giorni e di voler conservare le seguenti copie:

backup giornaliero dei 7 giorni precedenti;
backup settimanale delle 4 settimane precedenti;
backup mensile dei 6 mesi precedenti.

Le direttive di configurazione specifiche per una tale pianificazione sono le seguenti:

interval daily 7
interval weekly 4
interval monthly 6

Ora occorre definire le cartelle in cui fare i backup. Supponendo di voler conservare i file contenuti nelle cartelle /home /etc e /usr/local, nella cartella backup, aggiungere le seguenti istruzioni:

### BACKUP POINTS / SCRIPTS ###
backup /home/ snapshot/
backup /etc/  snapshot/
backup /usr/local/ snapshot/

Se invece si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare il protocollo ssh, come nel seguente esempio:

backup root@example.com:/home/ snapshot/example.com/

Inoltre è possibile aggiungere direttive per l’inclusione e l’esclusione di file mediante il pattern matching così come specificato nella pagina di manuale di rsync. Suppondendo di voler escludere tutti i file .mp3 dal backup è sufficiente aggiungere la seguente direttiva:
exclude *.mp3
Infine, è possibile testare il file di configurazione digitando il seguente comando in una finestra del terminale:

sudo rsnapshot configtest
# Syntax OK

Automatizzare il backup
È possibile effettuare il backup di vari servizi mediante degli script controllati da rsnapshot.

Supponendo di voler effetttuare il backup di un database MySql, si realizzi uno script, da inserire in un nuovo file (es. /root/scripts/backupmysql.sh), simile al seguente:

mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql

Dopo aver impostato il nome del database in «nomedatabse» e dopo aver impostato le opzioni «user» e «password» con il nome utente desiderato e la relativa password, è possibile richiamare lo script a partire dal file di configurazione sopra citato con un’istruzione simile alla seguente:

backup_script /root/scripts/backupmysql.sh snapshot/mysql/

rsnapshot lancerà lo script e sposterà nella cartella snapshot/mysql/ tutti i file di output prodotti nella cartella corrente.

Avvio del programma

rsnapshot deve essere avviato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive «interval» sopra descritte.

Per avviare il tipo di backup desiderato digitare il relativo comando in una finestra di terminale:

  • backup giornaliero:

    sudo rsnapshot daily
  • backup settimanale:
    sudo rsnapshot weekly
  • backup mensile:
    sudo rsnapshot monthly

     

*Aggiungendo l’opzione -t al comando è possibile verificarne il corretto funzionamento. Quello che segue è un esempio:

test :

# sudo rsnapshot -t hourly
echo 24319 > /var/run/rsnapshot.pid 
mkdir -m 0755 -p /media/backup/hourly.0/ 
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
 /home/user/Immagini /media/backup/hourly.0/snapshot/ 
touch /media/backup/hourly.0/

Per maggiori informazioni su rsnapshot consiglio di consultare il Wiki ufficiale di Ubuntu.