Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AlbericoAnobile/Prove0"
Differenze tra le versioni 1 e 78 (in 77 versioni)
Versione 1 del 19/09/2007 22.08.35
Dimensione: 1902
Commento:
Versione 78 del 02/10/2007 15.47.17
Dimensione: 6480
Commento: revisionata configurazione, staccata una sezione
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 8: Linea 8:
'''Monit''' è una applicazione utile a monitorare lo stato di file, directory, processi e device. E' in grado di intraprendere particolari misure di manutenzione (es. restart dei servizi, alert via mail) nel caso in cui riscontri particolari anomalie. '''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 disco occupato. Se utilizzato in concomitanza con [:SSHHowto:ssh] può effettuare il backup anche di sistemi remoti.
Linea 12: Linea 12:
Il programma è presente nel [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository] ufficiali. Può essere quindi installato mediante uno fra i vari strumenti messi a disposizione dal sistema: [:SynapticHowto:Synaptic], [:AdeptHowTo:Adept] e [:Apt:apt-get]. Il programma è presente nel [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository] ufficiali. Per installarlo è sufficiente [:InstallareProgrammi:installare] il pacchetto ''rsnapshot''.
Linea 16: Linea 16:
Per configurare '''monit''' è sufficiente modificare con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione] il file di configurazione `/etc/monit/monitrc` Per configurare '''rsnapshot''' è necessario aprire il file `/etc/rsnapshot.conf` con un [:EditorDiTesto:editor di testo] con i [:Sudo:privilegi di amministrazione].
Linea 18: Linea 18:
Innanzitutto è necessario specificare quali mail server dovrà utilizzare per l'invio della mail di notifica. E' possibile aggiungere diversi mail server con le relative porte (se diverse da 25). Supponendo di poter utilizzare i mail server: `mx1.example.com` `mx2.example.com` (porta 10025) occorre aggiungere al file di configurazione la direttiva seguente: ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''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 del backup:
{{{
rsnapshot_root /var/cache/rsnapshot/
}}}

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
}}}

Occorre definire le cartelle delle quali fare il backup. Supponendo di voler consevare 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 [:SSHHowto: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 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 con il seguente comando:
{{{
sudo rsnapshot configtest
}}}

= Automatizzare il backup =

È possibile effettuare il backup di vari servizi, mediante alcuni script controllati da '''rsnapshot'''. [[BR]]
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}}}, del seguente tipo:
Linea 21: Linea 66:
set mailserver mx1.example.com,
               mx2.example.com port 10025
#!/bin/bash

mysqldump nomedatabase --user=root --password=passworddiroot > dump.sql
Linea 25: Linea 71:
Specificare poi l'indirizzo mittente da cui l'applicazione invierà la posta (es. `monit@example.com`) Dopo aver personalizzato il nome del database, il nome utente e la relativa password è possibile richiamare lo script a partire dal file di configurazione sopra citato
Linea 28: Linea 74:
set mail-format { from: monit@example.com } backup_script /root/scripts/backupmysql.sh localhost/mysql/
Linea 31: Linea 77:
Specificare l'indirizzo a cui le mail di notifica dovranno essere consegnate (es. `sysadmin@example.com`) '''Rsnapshot''' lancerà lo script e sposterà nella cartelle {{{localhost/mysql}}} tutti i file di output prodotti nella directory corrente

= Eseguire rsnapshot =

'''Rsnapshot''' deve essere lanciato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive {{{interval}}} specificate in precedenza.

Per lanciare il backup giornaliero occorre quindi digitare il comando:
Linea 34: Linea 86:
set alert sysadmin@example.com sudo rsnapshot daily
Linea 37: Linea 89:
testo per il backup settimanale:

{{{
sudo rsnapshot weekly
}}}

e per il mensile:

{{{
sudo rsnapshot monthly
}}}

Passando il flag {{{-t}}} al comando è possibile testarne il funzionamento. Verranno semplicemente stampate a video tutte le azioni che '''rsnapshot''' eseguirà.

{{{
$ sudo rsnapshot -t daily

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/
}}}

== Cron ==

Affinchè '''rsnaphost''' venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron].

Una configurazione di esempio che
 * lanci il backup giornaliero alle 00:00
 * lanci il backup settimanale la domenica alle 6:00
 * lanci il backup mensile ogni primo del mese alle 12:00
potrebbe essere la seguente:

{{{
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
}}}
Linea 41: Linea 149:
 * risorsa 1
 * risorsa 2

## da questo punto in poi non modificare!
 * [http://www.rsnapshot.org/ Sito ufficiale del progetto]
 * [http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html Rsnapshot HOWTO]
Linea 46: Linea 152:
CategoryNuoviDocumenti CategoryHomepage

BR

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 disco occupato. Se utilizzato in concomitanza con [:SSHHowto:ssh] può effettuare il backup anche di sistemi remoti.

Installazione

Il programma è presente nel [:Repository/Componenti:componente] universe dei [:Repository:repository] ufficiali. Per installarlo è sufficiente [:InstallareProgrammi:installare] il pacchetto rsnapshot.

Configurazione

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

Immagine(Icone/Piccole/note.png,,center)

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 del backup:

rsnapshot_root  /var/cache/rsnapshot/

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

Occorre definire le cartelle delle quali fare il backup. Supponendo di voler consevare 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 [:SSHHowto: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 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 con il seguente comando:

sudo rsnapshot configtest

Automatizzare il backup

È possibile effettuare il backup di vari servizi, mediante alcuni script controllati da rsnapshot. BR 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, del seguente tipo:

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

Dopo aver personalizzato il nome del database, il nome utente e la relativa password è possibile richiamare lo script a partire dal file di configurazione sopra citato

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

Rsnapshot lancerà lo script e sposterà nella cartelle localhost/mysql tutti i file di output prodotti nella directory corrente

Eseguire rsnapshot

Rsnapshot deve essere lanciato specificando il tipo di backup che si intende utilizzare. Questo corrisponde ad una delle direttive interval specificate in precedenza.

Per lanciare il backup giornaliero occorre quindi digitare il comando:

sudo rsnapshot daily

per il backup settimanale:

sudo rsnapshot weekly

e per il mensile:

sudo rsnapshot monthly

Passando il flag -t al comando è possibile testarne il funzionamento. Verranno semplicemente stampate a video tutte le azioni che rsnapshot eseguirà.

$ sudo rsnapshot -t daily

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/

Cron

Affinchè rsnaphost venga eseguito ad intervalli regolari, occorre configurare opportunamente [:CronHowTo:Cron].

Una configurazione di esempio che

  • lanci il backup giornaliero alle 00:00
  • lanci il backup settimanale la domenica alle 6:00
  • lanci il backup mensile ogni primo del mese alle 12:00

potrebbe essere la seguente:

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


CategoryHomepage