## page was renamed from BackupDelSistema/Rsnapshot
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
'''rsnapshot''' è una applicazione in grado di effettuare il backup differenziale di porzioni di file system. Sfruttando [[http://samba.anu.edu.au/rsync/|rsync]] e gli [[http://openskills.info/infobox.php?ID=60|hard link]], è in grado di conservare diverse copie di backup, realizzate in diversi istanti di tempo, minimizzando la quantità di dati trasferiti e lo spazio occupato nel disco. Se utilizzato in concomitanza con [[InternetRete/ConfigurazioneRete/OpenSsh|ssh]] può effettuare il backup anche di sistemi remoti.
= Installazione =
[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://rsnapshot | rsnapshot]].
= Configurazione =
Per configurare '''rsnapshot''' è necessario aprire il file `/etc/rsnapshot.conf` con un [[Ufficio/EditorDiTesto|editor di testo]] con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|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 e incolla delle seguenti istruzioni:
* La seguente direttiva specifica la cartella di destinazione del backup:{{{
rsnapshot_root /var/cache/rsnapshot/
}}}
* Supponendo 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:{{{
retain daily 7
retain weekly 4
retain monthly 6
}}}
{{{#!wiki note
I nomi daily, weekly, monthly, ecc., indicano soltanto il nome delle cartelle di backup che rsnapshot crea quando viene eseguito con quel nome.<
>
È possibile dargli qualsiasi nome alfanumerico (es.: alpha, beta, gamma).<
>
La reale frequenza di esecuzione dei backup non si programma in `/etc/rsnapshot.conf` ma dipende da come viene pianificata l'esecuzione dell'utility rsnapshot, [[#pianificazione|per esempio con cron]].
}}}
È importante che i backup siano specificati in ordine decrescente di frequenza di esecuzione prevista (ovvero va specificato per primo il backup che sarà eseguito più spesso).
* Occorre definire per quali cartelle effettuare il backup. Supponendo di voler conservare i file contenuti nelle cartelle `/home /etc` e `/usr/local` nella cartella `localhost`, aggiungere le seguenti istruzioni:{{{
backup /home/ localhost/
backup /etc/ localhost/
backup /usr/local/ localhost/
}}}
Se invece si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare il protocollo [[InternetRete/DesktopRemoto/OpenSsh|ssh]], come nel seguente esempio:{{{
backup root@example.com:/home/ example.com/
}}}
* Inoltre è possibile aggiungere direttive per l'inclusione e l'esclusione di file mediante il [[http://en.wikipedia.org/wiki/Pattern_matching|pattern matching]], così come specificato nella pagina del manuale di '''rsync'''. Suppondendo di voler escludere tutti i file `.mp3` o il contenuto della cartella `.cache` dal backup è sufficiente aggiungere le seguenti direttive:{{{
exclude *.mp3
exclude .cache
}}}
* Infine, è possibile testare il file di configurazione digitando il seguente comando in un [[http://en.wikipedia.org/wiki/Amministrazione/Terminale|terminale]]:{{{
rsnapshot configtest
}}}
##= 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 [[Server/MySql|MySql]], si realizzi uno script, da inserire ##in un nuovo file (es. `/root/scripts/backupmysql.sh`), simile al seguente:
##{{{
## #!/bin/bash
##mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql
##}}}
##Dopo aver impostato il nome del database in «nomedatabase» 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 localhost/mysql/
##}}}
##'''rsnapshot''' lancerà lo script e sposterà nella cartella `localhost/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 «''retain''» sopra descritte.
Per avviare il tipo di backup desiderato digitare il relativo comando in [[AmministrazioneSistema/Terminale|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:{{{
sudo rsnapshot -t daily
}}}
Il risultato del precedente comando sarà simile al seguente:{{{
echo 29059 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--exclude=*.mp3 /home /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--exclude=*.mp3 /etc /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--exclude=*.mp3 /usr/local /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--exclude=*.mp3 --rsh=/usr/bin/ssh root@example.com:/home \
/var/cache/rsnapshot/daily.0/example.com
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/tmp/
cd /var/cache/rsnapshot/tmp/
/root/scripts/backupmysql.sh
cd /home/albe/
sync_if_different("/var/cache/rsnapshot/tmp/", \
"/var/cache/rsnapshot/daily.0/localhost/mysql/")
touch /var/cache/rsnapshot/daily.0/
}}}
<>
= Pianificazione delle operazioni con cron =
Affinchè '''rsnaphost''' venga eseguito ad intervalli regolari, occorre configurare opportunamente [[AmministrazioneSistema/Cron|cron]].
Quello che segue è un esempio di configurazione:
* '''backup giornaliero''' alle ore 00:00;
* '''backup settimanale''' la domenica alle ore 6:00;
* '''backup mensile''' ogni primo del mese alle 12:00.
Quella che segue è la pianificazione adatta al precedente esempio:{{{
m h dom mon dow user command
0 0 * * * root /usr/bin/rsnapshot daily
0 6 * * 0 root /usr/bin/rsnapshot weekly
0 12 1 * * root /usr/bin/rsnapshot monthly
}}}
= Ulteriori risorse =
* [[http://rsnapshot.org/rsnapshot/docs/docbook/rest.html|Tutorial ufficiale]]
----
CategoryAmministrazione