La script permette di effettuare due tipi di backup:
- local2local
- local2remote
archivia il contenuto di una data directory (L_PATH) in un’altra dello stesso sistema (R_PATH). La directory destinazione può essere il mount point di un hardisk esterno, di un filesystem nfs remoto od una qualunque altra directory del sistema locale.
archivia il contenuto di una data directory (L_PATH) in una directory remota di un’altro sistema (R_PATH). La directory remota può ovviamente essere il punto di mount di un qualunque filesystem supportato dal sistema.
La script di backup richiede che il pacchetto rdiff-backup sia installato sul sistema. Qualora si stesse usando la modalità local2remote, rdiff-backup andrà installato su entrambi i sistemi.
Per installare il pacchetto
apt-get install rdiff-backup
Nota
E` consigliabile che sistema locale e sistema remoto utilizzino la stessa versione di rdiff-backup.
Per configurare la script si dovrà modificare il file /etc/backup/backup.conf.
Esempio
BKP_METHOD="local2local"
L_PATH='/home'
R_PATH='/mnt/disco_backup/backup'
Esempio
BKP_METHOD="local2remote"
L_PATH='/home'
R_PATH='/backup/backup-server'
R_USER='root'
R_HOST='192.168.96.2'
Nota
R_PATH non puo’ puntare direttamente ad un link simbolico ma solo attraversarne uno puntando ad una directory. Se avessimo quindi R_PATH valorizzata R_PATH='/backup/backup-server', /backup potrebbe essere un collegamento simbolico.
Si è deciso di adottare una nuova convenzione: sulla macchina destinataria del backup si dovrà sempre creare un collegamento simbolico /backup che punti al path-destinazione del backup.
E` possibile escludere alcune directory dal backup accodandone il path completo al file /etc/backup/exclude.
Per escludere, ad esempio, la directory /home/.vmware dal backup di /home basterà aggiungere il seguente contenuto
- /home/.vmware
Per far eseguire automaticamente da crontab la script di backup basterà lanciare
crontab -e
ed inserire una riga come la seguente
20 23 * * * /usr/local/sbin/backup >/dev/null
Oppure, in caso si preferisse usare il nuovo file /etc/cron.d/isi, basterà accodarvi la stringa
20 23 * * * /usr/local/sbin/backup >/dev/null
e riavviare il crond
/etc/init.d/cron restart
Nota
20 23 * * * /usr/local/sbin/backup >/dev/null
La script verrà lanciata tutti i giorni alle 23.20
Seguono alcuni esempi pratici di ripristino
Recuperare dal server remoto 192.168.96.2 il contenuto che la directory /home/shares/classi/1a aveva 10 giorni fa
rdiff-backup -r 10D 192.168.96.2::/home/backup-server/classi/1a /tmp/1a
In``/tmp/1a`` si potrà trovare il contenuto che 1a aveva 10 giorni fa.
Oppure in caso non si stessero facendo i backup su di un server remoto
rdiff-backup -r 10D /mnt/disco_backup/backup/classi/1a /tmp/1a
<Approfondimenti> http://rdiff-backup.nongnu.org/examples.html#restore
Cancellare tutte le informazioni sui file più vecchi di due settimane
rdiff-backup --remove-older-than 2W 192.168.96.2::/home/backup-server/classi/1a
<Approfondimenti> http://rdiff-backup.nongnu.org/examples.html#delete_older