Il Backup Perfetto su Linux – La Guida Completa (RSync e RSnapshot)
Il backup in ambiente Linux è una di quelle procedure che va impostata bene una sola volta, per poi dimenticarsene completamente. Trovo molto utile la guida scritta da Saverio Bolognani che spiega dettagliatamente come implementare il “Backup Perfetto” in ambienti Linux. Ovviamente la procedura quì descritta può essere applicata anche sui sistemi Ubuntu Linux.
Penso che il backup perfetto (in qualsiasi sistema operativo) debba soddisfare i seguenti requisiti.
Completamente automatico
L’utente non deve fare nulla dopo aver configurato il suo sistema di backup la prima volta. Il tutto deve essere automatico da quel momento in poi. Altrimenti la “qualità ” del backup dipenderebbe dall’attenzione dell’utente e dalla sua scrupolosità , il che non è accettabile.
Separazione fisica dei supporti
Il backup deve essere contenuto in un supporto fisico che sia completamente separato e distante dal supporto sul quale sono memorizzati i dati originali. Il significato di “separato e distante” dipende dal livello di affidabilità che si richiede:
- vuoi essere al sicuro nel caso di cancellazioni accidentali di file? allora una cartella separata o meglio ancora una partizione dedicata sul tuo hard disk è sufficiente
- vuoi essere al sicuro nel caso di malfunzionamenti dell’hardware? allora hai bisogno almeno di un disco fisso separato per il tuo backup
- vuoi essere al sicuro nel caso di malfunzionamenti del sistema nel suo complesso (tipo scarica elettrica) o anche nel caso di furti? allora un hard disk esterno è la scelta migliore (soluzione consigliata)
- tenete presente che avere un computer e il backup su un hard disk esterno non è abbastanza per essere sicuri nel caso in cui, ad esempio, dei ladri entrano in casa oppure nel caso di eventi quali alluvioni o incendi. Per questo potreste voler tenere il backup in un altro edificio, per esempio al lavoro e non a casa.
- volete addirittura essere sicuri anche nel caso di eventi geograficamente localizzati (grandi alluvioni, terremoti, guerra)? Le banche ad esempio lo vogliono. In questo caso dovete fare il backup in qualche altra parte del mondo, ad esempio su un server remoto in un altro paese.
Potreste pensare che tutto ciò sia oltre le vostre necessità , ed effettivamente a voi basterà un hard diskesterno sulla vostra scrivania. In ogni caso dipende dall’importanza dei vostri dati: non vorreste mai perdere la tesi di dottorato che avevate praticamente finito solo perché dei ladri sono entrati in casa vostra e hanno portato via sia il notebook che l’hard disk esterno…
Recupero dei file semplice
Recuperare i file di cui avete fatto il backup deve essere facilissimo! In particolare dovete avere la possibilità di recuperare anche solo alcuni dei vostri file, oppure di recuperare tutto in un colpo solo.
Inoltre, non deve essere necessario alcun software per poter ripristinare i propri file! Non è accettabile che il proprio backup dipenda da una certa software house, o scoprire che il proprio backup vecchio di 5 anni non è più recuperabile perché il software che avete usato non esiste per la nuova versione del sistema operativo (chiedete agli utenti di Win98 se riescono ad accedere ai backup che hanno fatto in quegli anni con il tool di backup ufficiale della Microsoft, quello incluso tra gli Accessori del computer…).
Backup con rsync
Lo strumento principale con il quale si riesce a fare quello che secondo me è il backup perfetto è RSync, un programma open source che permette di fare trasferimento incrementale e rapido di files. La ragione per la quale questa utility è così importante è perché permette di copiare il contenuto di una serie di cartelle in un’altra posizione trasferendo in realtà solo i file che sono cambiati dall’ultima “sincronizzazione”.
C’è un bell’articolo che spiega come utilizzare questo programma per eseguire il backup dei propri files. L’idea principale è quella di fare regolarmente delle copie di tutti i propri dati sul supporto di backup. Rsync rende questa cosa veloce proprio per le caratteristiche che ho appena esposto.
In realtà si può fare anche di meglio: si possono tenere delle “fotografie”, degli “snapshots” dei propri dati, per esempio ogni settimana, così non solo si ha un backup dei propri files, ma si hanno a disposizioni le versioni precedenti.
Si potrebbe pensare che conservare una serie di backup settimanali sia molto oneroso in termini di spazio, ma non è vero! Sfruttando gli hard link del filesystem Ext3, ci sarà bisogno solo dello spazio necessario a memorizzare i file che sono cambiati da uno snapshot al successivo. E il backup che si ottiene è semplicemente una serie di cartelle, contenenti tutti i propri dati “fotografati” in momenti diversi del passato. Gli hard link sono completamente “trasparenti” all’utente, cioè non c’è modo per accorgersi che si tratta di hard links e non di copie aggiuntive degli stessi file.
Tutte queste cose sono fatte in automatico ed in modo efficiente da un bellissimo programmino opensource: rsnapshot.
Rsnapshot
Rnapshot è un programma opensource che implementa quello che secondo me è il “backup perfetto”. Quello che fa è di fare degli “snapshot” dei propri file alla frequenza desiderata (ad esempio ogni settimana). Poi queste copie vengono immagazzinate da rsnapshot sul proprio supporto di backup in modo veloce ed efficiente grazie a rsync.
Tutti gli snapshot acquisiti nel passato sono quindi accessibili come normalissime cartelle, anche se in realtà non occupano lo spazio di una serie di copie quasi uguali – solo le differenze sono effettivamente memorizzate.
In più, si può risparmiare ancora più spazio diradando la frequenza dei backup nel passato. Per esempio si possono fare snapshot settimanali, salvare gli ultimi 4, e poi tenere uno snapshot per mese per i backup più vecchi di 4 settimane. La rotazione di queste immagini è fatta automaticamente.
Un’altra caratteristica importante è che si può fare il backup non solo delle proprie cartelle sul disco fisso, ma anche di cartelle condivise (anche su un PC windows), cartelle remote (SSH, FTP, …), ecc.
Ultimo ma non meno importante, per accedere ai propri backup basta avere un computer che riesca a leggere il filesystem Ext3, cioè praticamente ogni computer Linux, ma anche ogni computer Windows se si installa un piccolo driver, completamente gratuito.
L’unica cosa che richiede un attimo di tempo è configurare rsnapshot la prima volta. C’è un sacco di documentazione online sul sito ufficiale, anche un HOW TO con istruzioni passo passo, insieme a un sacco di guide non ufficiali in giro per internet. Qui semplicemente vi descrivo la mia configurazione, così chi vuole può usarla e adattarla alle proprie necessità . Per informazione, io uso ubuntu, ma tutti i passaggi che spiego dovrebbero funzionare per praticamente ogni distribuzione Linux.
Il file di configurazione più importante per rsnapshot (l’unico) è /etc/rsnapshot.com. È pieno di commenti dettagliati, quindi non dovreste avere problemi a configurarlo semplicemente scorrendolo e leggendo i commenti delle varie sezioni (una volta che avete letto la brevissima guida sul sito ufficiale). Qui riporto solo le sezioni che ho modificato per le mie esigenze specifiche.
Per chi non mastica l’inglese ho tradotto velocemente i commenti.
Snapshot root directory
# All snapshots will be stored under this root directory.
# Tutti gli snapshot vengono salvati in questa cartella.
snapshot_root /media/LACIE_ext3/
# If no_create_root is enabled, rsnapshot will not automatically create
# the snapshot_root directory. This is particularly useful if you are
# backing up to removable media, such as a FireWire or USB drive.
# Se no_create_root è settato a 1, rsnapshot non creerÃ
# automaticamente la cartella snapshot_root. Ciò è particolarmente
# utile per fare backup su supporti rimovibili, come hard disk USB o
# FireWire.
no_create_root 1
Il significato di queste opzioni è banale, e ben spiegato dai commenti. /media/LACIE_ext3 è la mia partizione Ext3 su un hard disk esterno LaCie.
External program dependencies
In questa sezione non ho modificato nulla.
Backup intervals
# The interval names (hourly, daily, …) are just names and have no
# influence on the length of the interval. The numbers set the number
# of snapshots to keep for each interval (hourly.0, hourly.1, …).
# The length of the interval is set by the time between two executions
# of rsnapshot <interval name>, this is normally done via cron.
# Feel free to adapt the names, and the sample cron file under
# /etc/cron.d/rsnapshot to your needs. The only requirement is that
# the intervals must be listed in ascending order.
# I nomi degli intervalli (weekly = settimanale, monthly = mensile, …)
# sono solo nomi e non hanno nessun effetto sulla reale lunghezza
# dell’intervallo. I numeri impostano il numero di snapshot da
# conservare per ogni intervallo (weekly.0, weekly.1, …).
# La lunghezza dell’intervallo viene impostato dall’intervallo temporale
# tra due esecuzioni di rsnapshot <nome intervallo>, generalmente
# tramite cron. Sentitevi liberi di adattare i nomi degli intervalli, e di
# conseguenza il file /etc/cron.d/rsnapshot secondo le vostre
# esigenze. L’unica vincolo è che gli intervalli devono essere elencati
# in ordine ascendente.
interval weekly 4
interval monthly 36
Quest sezione configure la struttura dei backup nel tempo. Nel mio caso ho decido di conservare 4 backup nel passato, distanziati di una settimana (quindi che coprono l’ultimo mese). Quando i backup sono più vecchi di un mese, viene conservato solo un backup al mese. Per esempio se guardo i miei backup oggi che è il 10 Febbraio 2008, appaiono così:
drwxr-xr-x 3 root root 4096 2008-02-03 11:03 weekly.0
drwxr-xr-x 3 root root 4096 2008-02-03 10:05 weekly.1
drwxr-xr-x 3 root root 4096 2008-01-28 21:04 weekly.2
drwxr-xr-x 3 root root 4096 2008-01-27 00:04 weekly.3
drwxr-xr-x 3 root root 4096 2008-01-22 20:18 monthly.0
drwxr-xr-x 3 root root 4096 2008-01-06 13:04 monthly.1
drwxr-xr-x 3 root root 4096 2007-12-07 16:03 monthly.2
drwxr-xr-x 3 root root 4096 2007-11-05 15:04 monthly.3
drwxr-xr-x 3 root root 4096 2007-10-29 10:04 monthly.4
drwxr-xr-x 3 root root 4096 2007-10-08 20:04 monthly.5
drwxr-xr-x 3 root root 4096 2007-09-02 10:03 monthly.6
drwxr-xr-x 3 root root 4096 2007-08-05 17:34 monthly.7
…
Fate attenzione che i nomi che assegnate ad ogni backup non hanno nessuna conseguenza sulla frequenza del backup! Servono solo all’utente come etichette. La reale frequenza dei backup dipende da come viene chiamata l’utility rsnapshot (vedi sotto).
L’unico effetto di queste righe di setup è quindi fare in modo che quando l’utente esegue
rsnapshot weekly
allora rsnapshot fa ruotare tutti i backup settimanali (weekly), cancellando l’ultimo (weekly.3), e rinominando gli altri (weekly.1 diventa weekly.2 e così via) e ovviamente creando un nuovo weekly.0 con il backup di oggi. Quando invece viene eseguito
rsnapshot monthly
allora rsnapshot rinomina tutti i backup mensili (monthly) (monthly.1 diventa monthly.2 e così via) e rinomina l’ultimo backup settimanale (weekly.3) in monthly.0.
Global options
Anche qui non ho cambiato nulla.
Backup points / scripts
# LOCALHOST
backup /home/saverio/ localhost/
backup /etc/ localhost/
In questa sezione specificate di quali cartelle volete fare il backup (nel mio caso solo la home directory e /etc. Il secondo argomento di ogni riga specifica sotto quale cartella vanno salvate le copie sul supporto di backup. Attenzione alle barre (/) alla fine dei percorsi!
Pianificare i backup
Il passo successivo consiste nel pianificare l’esecuzione dell’utility di backup. In Linux i comandi pianificati vengono gestiti da alcuni demoni (daemons, cioè programmi che girano in background). Io ho utilizzato cron, disponibile in Ubuntu e in moltissime altre distribuzioni. Sotto la cartella /etc ci sono una serie di sottocartelle per configurare cron:
/etc/cron.d
contiene una serie di file, uno per ogni comando pianificato
/etc/cron.daily
contiene una serie di eseguibili che vanno lanciati ogni giorno
/etc/cron.weekly
contiene una serie di eseguibili che vanno lanciati ogni settimana
e così via. La soluzione che ho scelto è quella di aggiungere un file nella cartella cron.d. Il file si chiama /etc/cron.d/rsnapshot e contiene solamente la riga:
3 * * * * root /usr/bin/nice /home/saverio/bin/rsnapshot_script
che, secondo lo standard crontab, significa che il comando rsnapshot_weekly deve essere eseguito ogni ora, quando i minuti valgono 03 (cioè alle 9.03, 10.03, 11.03, etc…). Il comando viene eseguito con privilegi di superutente (root) e in background (vedi “man nice”).
Diamo quindi un’occhiata al comando rsnapshot_weekly nella mia cartella /home/saverio/bin. È un piccolo script che ho scritto:
#! /bin/bash
# Esegue lo script di backup ogni Domenica se una Domenica è passata senza che il backup sia stato eseguito.
# Ogni mese esegue anche il backup mensile.
una_settimana=7
un_mese=31
timestamp_file_weekly=/home/saverio/.backup_timestamp_weekly
log_file=/home/saverio/.backup.log
date_di_oggi=`date “+%Y%m%d”`
giorno_della_settimana=`date “+%u”`
ora_attuale=`date “+%s”`
date >> $log_file
if [ -e $timestamp_file_weekly ]; then
date_del_backup=`stat –format=%y $timestamp_file_weekly |
… tr -d – | awk ‘{print $1}’`
ora_del_backup=`stat –format=%Y $timestamp_file_weekly`
echo Ultimo backup settimanale $data_del_backup >> $log_file
if (( $giorno_della_settimana % 7 >= $ora_attuale / 86400 -
…$ora_del_backup / 86400 )); then
echo “non sono passate Domeniche senza fare il backup, non
…faccio niente” >> $log_file
exit 0;
fi
echo “una Domenica e passata senza fare il backup: lo faccio ora!”
…>> $log_file
if (( $data_di_oggi – $data_del_backup >= $un_mese )); then
echo “e cominciato un nuovo mese: faccio il backup mensile” >>
…$log_file
/usr/bin/rsnapshot monthly && echo “backup mensile: FATTO!” >>
…$log_file
fi
fi
echo “facciamo un backup settimanale” >> $log_file
date > /home/saverio/.today
/usr/bin/rsnapshot weekly && touch $timestamp_file_weekly && echo
…”backup settimanale: FATTO!” >> $log_file
Ho aggiunto i puntini quando la riga viene spezzata, quindi non fate copia e incolla perché non funzionerebbe. Potete scaricare lo script rsnapshot_script cliccando sul link.
Quello che fa lo script, per chi non ha voglia di guardarne i dettagli, è di eseguire il backup settimanale ogni Domenica. Gestisce correttamente tutti i casi in cui, per esempio, l’hard disk esterno non è collegato al portatile. Inoltre, prevede la possibilità che una Domenica l’utente non accenda il PC, oppure non colleghi l’hard disk esterno. In questo caso lo script farà il backup non appena trova l’hard disk collegato nei giorni immediatamente successivi.
Esegue anche il backup mensile (che non è un backup, è solo la rotazione dei vecchi backup) la prima Domenica del mese.
Non dovete leggervi tutto lo script, l’unica cosa che dovete sapere è che ci sono due opzioni: timestamp_file_weekly che è un file vuoto che serve solo per tener traccia dell’ultimo backup. Potete creare questo file vuoto semplicemente eseguendo
touch timestamp_filename
Il secondo parametro che va impostato è il percorso per il log_file, che è il file dove verrà mantenuto il log di tutto quello che viene fatto (vedi sotto).
Log
Lo script che ho scritto tiene automaticamente un log di tutto quello che fa, per controllarne l’operato e per eventuale debugging. Questo è un esempio del log file sul mio PC (è in inglese perché lo script è in inglese):
Sat Feb 2 23:03:01 CET 2008
Ultimo backup settimanale 20080128
Non sono passate Domeniche senza backup, non faccio nulla
Sun Feb 3 10:03:01 CET 2008
Ultimo backup settimanale 20080128
una Domenica e passata senza fare il backup!
E cominciato un nuovo mese: ora di fare il backup mensile
facciamo un backup settimanale
Sun Feb 3 11:03:01 CET 2008
Ultimo backup settimanale 20080128
una Domenica e passata senza fare il backup!
E cominciato un nuovo mese: ora di fare il backup mensile
backup mensile: FATTO!
facciamo un backup settimanale
backup settimanale: FATTO!
Sun Feb 3 12:03:01 CET 2008
Ultimo backup settimanale 20080203
Non sono passate Domeniche senza backup, non faccio nulla
Ogni voce comincia con data e orario, e si può vedere come i backup vengono fatti correttamente. Poiché il file di log cresce continuamente (ma lentamente, visto che è solo testo), bisogna gestire la cosa. Il modo più facile è quello di usare logrotate, che è già disponibile su Ubuntu e su molte altre distribuzioni. In pratica è un programmino che viene eseguito periodicamente e comprime i file di log, mantenendoli piccoli in dimensione e cancellandoli quando sono vecchi. Tutto quello che dovete fare per dire a logrotate di occuparsi del vostro log è creare il file /etc/logrotate.d/backup con le seguenti righe
/home/saverio/.backup.log {
rotate 6
monthly
compress
missingok
}
che dice a logrotate di “ruotare” i log mensilmente, tenendone solo gli ultimi 6 e comprimendo con gzip. Non vengono dati errori se un file di log manca, ad esempio perché lo cancellate a mano.
37 Commenti »
Puoi lasciare una risposta, oppure fare un trackback dal tuo sito.



1
gbt dice:
ma remastersys dove lo mettiamo?per me e il migliore!
Pubblicato il 17 05 2008 alle 20:56
2
Daniele dice:
@gbt: non lo conosco, di che si tratta ?
Pubblicato il 18 05 2008 alle 12:50
3
Cristiano dice:
Hai realizzato una guida veramente alla portata di tutti: complimenti !
P.S.: Le lettere accentate dell’articolo sono illeggibili
Pubblicato il 19 05 2008 alle 08:58
4
Cristiano dice:
Hai realizzato un’ottima guida veramente accessibile a tutti: complimenti
P.S.: le lettere accentate a volte vengono visualizzate male
Pubblicato il 19 05 2008 alle 10:27
5
Sajmon75 dice:
Complimenti. Credo che la mancanza di un tool di backup con GUI GTK dall’utilizzo semplice e immediato si faccia tuttora sentire in Ubuntu e in Linux in generale. I vari tool attualmente presenti non mi paiono all’altezza. Quindi in attesa del “tool definitivo” la tua soluzione mi pare davvero buona!
Pubblicato il 19 05 2008 alle 12:02
6
Daniele dice:
Ragazzi i complimenti sono da fare a saverio. È lui l’autore della guida.
Pubblicato il 19 05 2008 alle 21:01
7
Saverio dice:
Grazie dei complimenti! Semplicemente dopo aver perso un po’ di tempo a scrivere questi script ho pensato di risparmiare la fatica a chi lo desidera.
Io adesso vedo bene i caratteri accentati: forse sono stati corretti…
Ciao a tutti!
Pubblicato il 27 05 2008 alle 20:39
8
Sergio dice:
Salve,
volevo una informazione. Nel caso in cui il backup non va a buon fine, ad esempio spengo il pc prima che sia completato, cosa succede?
Rsnapshot all’inizio di un backup “weekly” copia semplicemente in un weekly più vecchio il weekly attuale e nella cartella attuale ra rsync con i dati da sincronizzare.
Ad esempio: ho sull’hd esterno weekly.0 e weekly.1. Ad una richiesta di backup succede che weekly.1 va in weekly.2, mentre weekly.0 va in weekly.1 e weekly.0 viene aggiornato.
Ma se interrompessi questa procedura, weekly.0 risulterebbe corrotto, o meglio, non sincronizzato? Quindi è come se il backup non fosse avvenuto (weekly.1 == weekly.0).
Se è giusto quanto detto sopra, come si potrebbe ovviare a questo inconveniente?
Grazie,
Sergio.
P.S. COMPLIMENTONIII
Pubblicato il 23 06 2008 alle 12:28
9
cristiano corsi dice:
una domanda stupida…. ma se io avessi il disco da copiare con file sytem NTFS montato come secondo disco su unserver linux e il disco di esterno usb in file system NTFS o fat 32 com potrei fare?
Grazie
Cristiano
Pubblicato il 30 07 2008 alle 11:44
10
Christopher dice:
Scusa, una domanda molto semplice:
se ho bisogno di fare il backup su un disco esterno, montato con curlftpfs, ovviamente questa soluzione non è delle migliori. Semplicemente perchè rsync proverà a preservare l’owner dei vari files e directory…ma se, appunto, il backup viene fatto su un altro disco, rsync non funziona perchè i vari comandi come: chgrp e chown NON funzioneranno. Che senso ha allora ? sìsì, ok, posso dire a rsync di non preservare l’owner e i permessi originali, ma…,di nuovo, che senso ha ? la potenza di questo rsnapshot dovrebbe essere appunto quella di fare esattamente uno snapshot. Pensavo che rsnapshot si salvasse su un file a parte i permessi originali..e poi li riapplicasse al momento del restore.
Ho ragione o ho sparato un mucchio di stronzate?
Pubblicato il 13 09 2008 alle 00:59
11
Saverio dice:
@ cristiano corsi:
Non ho capito bene se quello su NTFS è il disca di cui va fatto il backup o il supporto di backup.
Tieni conto che il supporto sul quale fai il backup DEVE essere ext3 per poter sfruttare le potenzialità di rsync, in particolare la possibilità di fare copie incrementali. Io ho formattato il mio HD esterno in ext3, e ci ho messo su un programmino per windows che permette di accedere agli ext3 anche nei computer windows a cui lo collego.
@ Christopher:
Lo stesso discorso vale anche per te. Il supporto sul quale fai backup deve essere ext3 per poter usare rsync appieno, quindi il problema dei permessi non si pone molto.
Pubblicato il 25 11 2008 alle 00:03
12
ray dice:
Davvero molto interessante, stavo provando a modificare lo script
per fare ruotare i backup con questa sequenza:
1 backup giornaliero
5 backup per settimana ( da lunedi al venerdi )
4 backup al mese ( uno per settimana )
6 backup conservati dei 6 mesi a rotazione
Dato la non sempre facilità nel modificare codice fatto da altri chiedo all’autore se mi puo’ dare una mano in tal senso.
grazie
Pubblicato il 03 12 2008 alle 12:51
13
Saverio dice:
Ray, la parte banale della modifica è sostituire
interval weekly 4
interval monthly 36
con
interval daily 7
interval weekly 4
interval monthly 36
Poi però bisogna che rsnapshot daily venga lanciato ogni giorno,
rsnapshot weekly ogni settimana, rsnapshot monthly ogni mese.
Non vorrei sbagliarmi, ma lo script dovrebbe funzionare cosi com’è, se non che bisogna che tu lanci rsnapshot daily ogni giorno, ad esempio mettendo un piccolissimo script che fa solo
/usr/bin/nice /home/saverio/bin/rsnapshot daily
in cron.daily.
A proposito: è cambiato il mio sito, ora è http://www.dei.unipd.it/~sbologna
Ciao a tutti!
Pubblicato il 19 12 2008 alle 18:08
14
Matteo dice:
Ottima guida
Pubblicato il 04 02 2009 alle 17:27
15
Alan Toro » Metodi di backup su Linux dice:
[...] ho notato qualche altro strumento. Ad esempio ho trovato molto interessante sia l’articolo di Daniele Salamina e sia Flayback [...]
Pubblicato il 12 04 2009 alle 14:46
16
giacomo dice:
A che serve la penultima riga “date > /home/saverio/.today” ??
A me sembra che tenga traccia dell’ultimo backup stampando la data nel file .today, solo che poi questo file non viene usato da nessuna parte…
Complimenti per aver riportato quest’ottima guida
Pubblicato il 04 08 2009 alle 21:31
17
urturino dice:
Io credo di avere un problema, perché ogni domenica, invece di fare UN backup, fa un backup ogni ora.
È come se non eseguisse il comando “touch $timestamp_file_weekly”
Pubblicato il 17 08 2009 alle 18:23
18
Mizio dice:
Domanda Banale,
è possibile effettuare Snapshot, usando come dispositivo di backup un nastro? O meglio se ho un unità ad 8 nastri, come potrei implementare una buona strategia di backup?
Ps. Cmplimenti per l’ottima guida
Pubblicato il 04 09 2009 alle 10:51
19
Carlo dice:
Ciao,
avrei un dubbio. Vorrei usare un hardk disk usb, ovviamente formattato in ext3, come destinazione del backup. Ho creato un mount point in /media/backup_pb e configurato tutto il resto (credo) correttamente, seguendo la guida. Questo hard disk non lo tengo sempre collegato, quindi mi aspetterei che lo script “fallisca” l’operazione di backup. Invece quello che succede è che va comunque a creare le directory weekly.0 etc. nella directory /media/backup_pb. Cioè, il punto di mount è presente anche quando l’hard disk è scollegato, e lo script va a scrivere lì.
Dov’è l’errore?
Ho appena controllato e anche il valore di no_create_root è impostato correttamente a 1, nel caso potesse dipendere da questo.
grazie,
Carlo
Pubblicato il 23 09 2009 alle 20:47
20
alessandro dice:
@ urturino:
devi installare lchown-perl, altrimenti rsnapshot ritorna un exit-status 2 e non viene effettauto il touch di $timestamp_file_weekly.
Pubblicato il 18 10 2009 alle 17:55
21
Rainolf dice:
In Debian sto notando che tutto funziona bene eccetto la propagazione dei permessi ed utenti con rsync.
Qualcuno mi sa suggerire un workaround?
Grazie
Pubblicato il 19 10 2009 alle 13:42
22
mirco dice:
Vi premetto che sono alle prime armi con linux,volevo effettuare un backup incrementale della mia cartella /home /etc /usr su un hard disk esterno su usb da 1 Tb.Ho seguito attentamente la guida passo per passo ma quando eseguo il comando rsnapshot weekly come root, sull’harddisk esterno trovo sulla cartella weekly.0 solo cartelle senza file dentro.
Sicuramente è un problema di permessi ma non riesco a uscirne fuori, durante il backup vedo errori di questo tipo:
rsync: chown “/media/PACKARDBELL/BkNibiru/weekly.0/localhost/usr/local/share/xml/declaration” failed: Operation not permitted (1)
rsync: chown “/media/PACKARDBELL/BkNibiru/weekly.0/localhost/usr/local/share/xml/entities” failed: Operation not permitted (1)
rsync: chown “/media/PACKARDBELL/BkNibiru/weekly.0/localhost/usr/local/share/xml/misc” failed: Operation not permitted (1)
rsync: chgrp “/media/PACKARDBELL/BkNibiru/weekly.0/localhost/usr/local/buc/.buc.MMJhgr” failed: Operation not permitted (1)
rsync: chgrp “/media/PACKARDBELL/BkNibiru/weekly.0/localhost/usr/local/buc/.grafica-aircrack.zip.JY1hKi” failed: Operation not permitted (1)
Grazie mille per l’aiuto
Pubblicato il 12 12 2009 alle 03:43
23
mirco dice:
@ mirco:
Ho risolto il problema il mio disco esterno è un fat32 devo formattarlo in ext3.
Grazie
Pubblicato il 13 12 2009 alle 00:01
24
Ray dice:
Rsnapshot e ACL per Active Directory
Qualcuno di voi ha testato la propagazione delle acl con rsnapshot e rsync? ( chiedo piu’ precisamente all’autore)…
Ho filesystem ext3 con il supporto alle acl… rsync passa –acl –perm –owner etc.. ma non riesco a fare in modo che i backup di macchine remote ereditino gli stessi permessi dei files originali…..la macchina di backup ha un join in active directory come tutte le altre…..
la versione di rsync e’ la 3.0 su macchina debian lenny…
qualcuno ha fatto test su questo?
grazie
Pubblicato il 16 12 2009 alle 14:08
25
indy dice:
Ciao!
Complimenti per l’ottima guida.
Io ho un piccolo problema con rsnapshot:
se indico nel file di configurazione daily 6, weekly 16 lui esegue correttamente quelli giornalieri ma non quelli settimanali. Non è un problema di /etc/cron.d, ho fatto la prova commentando separatamente la linea relativa a daily sull’uno e sull’altro file.
Qualcuno ne sa di più?
Pubblicato il 22 01 2010 alle 18:46
26
marco dice:
ciao
nello script la variabile una_settimana non viene poi utilizzata…
ciao
marco
Pubblicato il 24 04 2010 alle 16:02
27
geckjack dice:
@ Sajmon75:
Sarebbe inutile, il 90% degli utenti non sa nemmeno cos’è un backup finchè non gli si rompe il disco. Per tutti gli altri non c’è bisogno di gui, bastano tar, rsync e compagnia bella.
Pubblicato il 15 06 2010 alle 11:01
28
Maxiride dice:
Ottima guida veramente solo non ho capito se rsync e rsnapshot vanno utilizzati insieme o se il secondo è una versione più avanzata del primo.
Pubblicato il 18 12 2010 alle 14:26
29
ilgio dice:
Ottimo!!
però oltre a quelli voglio farlo giornaliero
come faccio?
Pubblicato il 28 01 2011 alle 16:07
30
ilgio dice:
e proprio per rompere …
e se voglio fare una copia su un FTP settimanalmente
come fare?
Pubblicato il 28 01 2011 alle 16:09
31
luigi dice:
Ciao, innanzittutto grazie e complimenti per l’ottimo lavoro. Una domanda: perchè per avere i 6 bk degli ultimi sei mesi metti
interval monthly 36
e non
interval monthly 6
come indica questa guida del forum ubuntu:
http://wiki.ubuntu-it.org/AmministrazioneSistema/BackupDelSistema/Rsnapshot
e avendo io alcune dir sotto controllo di versione tramite bazaar come faccio a dirgli di escludere la cartella “.bzr” ogni volta che la incontra? basta un
exclude ./.bzr
Grazie
Pubblicato il 06 02 2011 alle 04:01
32
luigi dice:
Dimenticavo… ma alla fine questo backup che si differenzia dal semplice rsync per la possibilita di savare X versioni dei miei backup, non equivale a ciò che si ottiene con rdiff-backup. Te lo chiedo perchè non capisco se i due strumenti si integrano o se si sovrappongono. Grazie ancora.
Ciao
Pubblicato il 06 02 2011 alle 04:09
33
luigi dice:
Scusa, sara l’ora tarda, ma più leggo e meno capisco…
perchè se dici:
3 * * * * root /usr/bin/nice /home/saverio/bin/rsnapshot_script
poi continui con:
“Diamo quindi un’occhiata al comando rsnapshot_weekly nella mia cartella /home/saverio/bin”
Voglio dire lo script che lanci si chiama “rsnapshot_script” o “rsnapshot_weekly” ?
Non ci sto capendo più nulla…
Pubblicato il 06 02 2011 alle 05:16
34
rischiav dice:
@ Saverio:
Saverio ha scritto:
Ciao,
prima di tutto compliemti per la guida!!!
Vorrei provare a modificare lo script che hai proposto facendogli creare anche un file che memorizzi il giorno dell’ultimo backup giornaliero (e questo è facile) e che controllasse prima di fare il backup settimanale se è il caso di fare quello giornaliero.
Volendo lasciare la struttura simile a quella del tuo script, credo che sia sufficiente usare una variabile dove memorizzare il ripo di backup da fare, poi salvare nella variable “weekly” se il backup settimanale non è stato fatto, dopo verificare se manca quello giornaliero ed eventualmente mettere “daily” nella variabile.
In questo modo la prima volta che esegui lo script di ogni giorno viene fatto il backup giornaliero, poi la successiva il settimanale…
Il mio problema è come estrarre la condizione da mettere nell if, potresti darmi una mano?
Pubblicato il 08 02 2011 alle 12:53
35
Ciro dice:
… si si, ok, non c’entra nulla con l’articolo (BELLISSIMO!!!) ma… cribio, mi consenta, su “qui e qua l’accento non va`”… e questo blog ne e’ pieno.
Pubblicato il 26 04 2011 alle 23:28
36
Tiziano dice:
Ciao Daniele, oramai da qualche mese sto cercando uno script che esegua dei backup programmati un po’ particolare e spero che tu possa darmi qualche dritta. Di preciso sto cercando un programma di backup che emuli il programma commerciale per windows Allwayssync in quanto vorrei mantenere tutte le revisioni dei file suddivise per data e ora. Mi spiego con un esempio
CARTELLA ORIGINE
–Cartella1
–filea
–fileb
–filec
–filed
–Cartella 2
–filex
–filez
eseguo lo script che si limiterà a copiare tutto il contenuto di “CARTELLA ORIGINE”
CARTELLA BACKUP
–Cartella1
–filea
–fileb
–filec
–filed
–Cartella 2
–filex
–filez
modifico il file b e il file z ed eseguo lo script che questa volta saverà in una cartella apposita i file b e z (mantenendo la struttura delle directory) e aggiornerà la cartella “CARTELLA ORIGINE” con le nuove versioni dei suddetti file
CARTELLA BACKUP
–CARTELLA PRINCIPALE
–Cartella1
–filea
–fileb
–filec
–filed
–Cartella 2
–filex
–filez
–CARTELLA MODIFICHE
–CARTELLA DATA-ORA1
–Cartella1
–fileb (versione precedente)
–Cartella2
–filez
ora modifico il file a e b, elimino il file x ed eseguo nuovamente lo script che questa volta saverà in una cartella apposita i file a e b (versione 1), sposterà il file x nella cartella degli eliminati (mantenendo sempre la struttura delle directory) e aggiornerà la cartella “CARTELLA ORIGINE” con le nuove versioni dei suddetti file
CARTELLA BACKUP
–CARTELLA PRINCIPALE
–Cartella1
–filea (versione 1)
–fileb (versione 2)
–filec
–filed
–Cartella 2
–filez
–CARTELLA MODIFICHE
–CARTELLA DATA-ORA1
–Cartella1
–fileb (versione 0)
–Cartella2
–filez
–CARTELLA DATA-ORA2
–Cartella1
–filea (versione 0)
–fileb (versione 1)
–CARTELLA ELIMINAZIONI
–CARTELLA DATA-ORA2
–Cartella2
–filex
Spero di essermi spiegato.
Sai se esiste qualche script che faccia al caso mio?
Ti ringrazio anticipatamente
Ciao
Tiziano
Pubblicato il 05 01 2012 alle 17:42
37
Aled72 dice:
Complimenti per il bellissimo articolo, avrei solo una domanda…
lo script mi ritorna il seguente errore:
rsnapshot_weekly.sh: 31: 7: not found
rsnapshot_weekly.sh: 31: 20120205: not found
eppure tranne i percorsi nella mia home non o cambiato nulla, il file timestamp, backup.log e today sono a posto.
qualche consiglio?
Pubblicato il 05 02 2012 alle 22:29