Effettuare il Backup di Linux con rsnapshot

Di seguito descriviamo un sistema per effettuare in maniera efficace i backup di un sistema linux. rsnapshot effettua un determinato numero di backup incrementali di alcune cartelle selezionate utilizzando hard links. in questo modo si risparmierà spazio sul dispositivo di backup.
rsnapshot è configurabile in modo da poter effettuare a rotazione backup giornalieri, settimanali e mensili. Il vincolo fondamentale per questo tipo di backup è quello di disporre di una partizione o un disco esterno formattato con il file system ext4.

Innanzitutto è necessario installare il software necessario:
sui sistemi Debian / Ubuntu: sudo apt-get install rsnapshot
sui sistemi CentOS / Red Hat: yum install rsnapshot

Creiamo gli script per l’esecuzione pianificata:
FILE /etc/cron.daily/rsnapshot.daily
#!/bin/sh

echo “### RSNAPSHOT DAILY ###”
mount /dev/usbdisk01 /mnt/backup && rsnapshot daily || echo “backup fallito”
umount /mnt/backup
echo

FILE /etc/cron.weekly/rsnapshot.weekly
#!/bin/sh

echo “### RSNAPSHOT WEEKLY ###”
mount /dev/usbdisk01 /mnt/backup && rsnapshot weekly || echo “backup fallito”
umount /mnt/backup
echo
FILE /etc/cron.monthly/rsnapshot.monthly
#!/bin/sh

echo “### RSNAPSHOT MONTHLY ###”
mount /dev/usbdisk01 /mnt/backup && rsnapshot monthly || echo “Backup failure”
umount /mnt/backup
echo

Rendere gli script eseguibili con le seguenti righe di comando:
chmod 777 /etc/cron.daily/rsnapshot.daily
chmod 777 /etc/cron.daily/rsnapshot.weekly
chmod 777 /etc/cron.daily/rsnapshot.monthly

Nota: rsnapshot non gestisce autonomamente le tempistiche. I parametri per la ritenzione daily, weekly e monthly sono identificatori generici. E’ pertanto importante chiamare la snapshot giornaliera una volta al giorno, quella settimananel una volta a settimana, etc.

Infine è necessario impostare il file di configurazione di rsnapshot (i valori sono delimitati da tabulazioni, non da spazi):

FILE /etc/rsnapshot.conf
# Default config version
config_version 1.2

# So the hard disk is not polluted in case the backup filesystem is not available
no_create_root 1

# Standard settings
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
link_dest 1

# For convenience, so that mount points can be taken as backup starting points
one_fs 1

# Store all backups in one directory per machine
# A useful alternative may be to create a separate directory for each interval
snapshot_root /mnt/backup/

# increments, which are kept
retain daily 7
retain weekly 4
retain monthly 12

# Backup folder(s)/files
backup /cartella/dati/ localhost/
backup /var/ localhost/

# Exclude pattern (refer to –exclude-from from rsync man page)
exclude /cartella/dati/tmp/

Nota: rsnapshot manterrà l’ultima snapshot giornaliera per creare la prima snapshot settimanale e l’ultima snapshot settimanale per creare la prima snapshot mensile.

Recupero dei dati
Per recuperare i dati salvati con questo sistema, è sufficiente eseguire le seguenti operazioni:

mount /mnt/backup
rsync -a /mnt/backup/localhost/monthly.0/localhost/. /mnt/restore/
rsync -a /mnt/backup/localhost/weekly.0/localhost/. /mnt/restore/
rsync -a /mnt/backup/localhost/daily.0/localhost/. /mnt/restore/

nei percorsi sopracitati *.0 si riferisce all’ultimo backup incrementale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Time limit is exhausted. Please reload CAPTCHA.