Pagina 1 di 2

backup incrementale con rsync

Inviato: gio set 20, 2018 13:12
da conraid
Se volessi creare dei backup giornalieri di una directory del mio pc su hd esterno con rsync, ma in modo che abbia questi backup giornalieri per 7 giorni, come potrei fare?

mi spiego meglio

Ho DIR e vorrei:
BAK-LUN
BAK-MAR
BAK-MER
BAK-GIO
BAK-VEN
BAK-SAB
BAK-DOM

Potrei anche fare tipo tipo
BAK-DOM intero e poi incrementali gli altri giorni.

So che esistono software che lo fanno, ma è per diletto e volevo capire con rsync come potrei muovermi.

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 13:52
da miklos
la butto li... delle regole cron che agiscono ad una determinata ora di un determinato giorno della settimana?!
So che potrebbe sembrare meno automatizzato, però è la cosa piu' semplice (che per me sono sempre le migliori)

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 14:21
da conraid
Sì, quello sì, mettere anche lo script in cron.daily, ma cercavo di capire come fare uno snapshost solo delle differenze. Altri script che agiscono con rsync ho visto che usano directory tampone, ma ci ho capito poco.
Insomma se per esempio il lunedì faccio "rsync -a sorgente destinazione", il martedì che faccio per avere solo i file modificati o nuovi?

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 14:45
da miklos
se non ho capito male tu non vuoi avere delle 'copie' esatte per ogni giorno della settimana (che è quello che farebbe rsync) ma solo i file modificati dal lunedi al mercoledi (ad esempio).
Se è cosi potresti anche lanciare un find cercando i file con orario di modifica/creazione successivo all'ultimo backup eseguito e usare rsync solo quando vuoi fare il full.

Però a sto punto mi sorge una domanda, quale sarebbe la procedura di ripristino se ad esempio oggi (venerdi) dovessi ripristinare lo stato del mercoledi??!
Prenderesti la directory della domenica e la uniresti con quelle dei 3 giorni successivi!??! E con i file eventualmente rimossi?!?!

Scusami, ma questo topic sta stuzzicando la mia curiosita :)

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 15:02
da conraid
miklos ha scritto:se non ho capito male tu non vuoi avere delle 'copie' esatte per ogni giorno della settimana (che è quello che farebbe rsync) ma solo i file modificati dal lunedi al mercoledi (ad esempio).
Se è cosi potresti anche lanciare un find cercando i file con orario di modifica/creazione successivo all'ultimo backup eseguito e usare rsync solo quando vuoi fare il full.

Però a sto punto mi sorge una domanda, quale sarebbe la procedura di ripristino se ad esempio oggi (venerdi) dovessi ripristinare lo stato del mercoledi??!
Prenderesti la directory della domenica e la uniresti con quelle dei 3 giorni successivi!??! E con i file eventualmente rimossi?!?!

Scusami, ma questo topic sta stuzzicando la mia curiosita :)


eh, altra cosa da provare. Ma i file rimossi se faccio il backup tornano quelli di quel giorno. Sinceramente boh :)
Esistono software che lo fanno, tipo rsnapshot (che però è qualche giorno che il sito non va e non riesco a scaricare e leggere documentazione) che mi sembra usi proprio rsync appoggiandosi però a delle directory temporanee o usando hard-links. Ma anche facendo prove non trovo niente.
Strano però, perché rsync ha già la possibilità per farlo visto che fa sempre copia incrementale.
Facendo per esempio
rsync -aub --backup-dir=lun sorgente/ destinazione
mi metti in lun solo i file modificati, ma non quelli nuovi :/

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 15:44
da ponce
potresti fare una rotazione periodica fra n+1 directory, chiamate ad esempio backup_0,...backup_n.

ogni giorno:
- butti via la directory backup_$n
- sposti la directory backup_$(n-1) in backup_$n, la directory backup_$(n-2) in backup_$(n-1) e cosi' via, fino a n=1
- copi la directory backup_1 in backup_0 sfruttando gli hard links (-l, se il filesystem -ad esempio ext4- lo permette), che non occupano spazio ulteriore

Codice: Seleziona tutto

cp -al backup_1 backup_0

- fai un rsync fra la directory che vuoi backuppare e backup_0 in modo da copiare solo i cambiamenti

Codice: Seleziona tutto

rsync -avP --delete-after /directory/da/backuppare/ /percorso/backup_0

in questo modo dentro le varie directory backup_X avrai degli snapshot completi che occuperanno sul disco solo lo spazio incrementale.

io faccio cosi' da anni (da quando se ne e' parlato con un collega).

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 16:39
da conraid
Sì, come fanno appunto molti script e software. Non mi tornano alcune cose.

Le prime directory come le creo?

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 17:00
da ponce
le puoi fare anche vuote.

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 17:16
da conraid
Non mi torna, forse dovrei mettermici con più calma

ho
sorgente
backup1
backup2
backup3
backup4

backup* tutto vuote

la prima volta vado di
rsync -avP --delete-after sorgente backup0

ma se poi faccio
rm -rf backup4
mv backup3 backup4
mv backup2 backup3
cp -al backup1 backup0
già qui dovrei fare cancellare backup0? altrimenti poi ho backup0/backup1
Ma se cancello poi ho nuovamente confronto con vuota e siamo punto e a capo.
E backup2 non esiste più :)

o è
mv backup1 backup2
cp -al backup0 backup1


Forse mi perdo in un bicchier d'acqua

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 18:32
da ponce
la prima volta

Codice: Seleziona tutto

rsync -avP --delete-after sorgente/ backup0


poi ogni backup lo fai con

Codice: Seleziona tutto

rm -rf backup4
mv backup3 backup4
mv backup2 backup3
mv backup1 backup2
mv backup0 backup1
cp -al backup1 backup0
rsync -avP --delete-after sorgente/ backup0

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 18:39
da conraid
Ok. Perfetto,

Se voglio fare un restore come faccio?
Metti voglio backup3

cp -al sempre o altro?

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 18:45
da ponce
come vuoi: la directory backup3 conterra' uno snapshot di tutta la roba e la puoi copiare/gestire/navigare come ti pare.
occhio che l'opzione -l di cp (hardlinks) funziona solo sul solito filesystem, quindi la puoi usare quando fai la procedura di backup, ma non credo proprio che tu la usi per ripristinare i backup (che spero vivamente tu faccia su un altro filesystem).

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 18:51
da miklos
questa procedura ha del geniale nella sua semplicità...complimenti :) l'unica cosa che mi ha fatto venire il dubbio è sugli hard link (che ammetto di nn aver mai usato.. conosco solo un po di teoria)... se un file lo cambio nel tempo gli hard link dei backup che file avranno?! quello modificato?! o quello al tempo della creazione del backup?!

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 19:09
da ponce
punteranno agli inode originali, quindi al file com'era al tempo della creazione del backup.
il file cambiato sara' semplicemente un altro file e puntera' ad altri inode.

https://medium.com/@wendymayorgasegura/ ... 0493041b62

anche https://www.ostechnix.com/explaining-so ... -examples/ (ma e' molto sintetico e non del tutto preciso)

Re: backup incrementale con rsync

Inviato: ven set 21, 2018 19:44
da conraid
Aspetta.
Io in realtà volevo fare tutto sulla stessa macchina e stesso filesystem. Come lo faccio allora il restore?
La directory sorgente metti è la mia home, il repository o la directory dei siti che ho in locale (la curiosità mi è venuta proprio perché i pannelli di gestione dell'hosting hanno backup incrementali automatici e ci son softwaew che lo fanno, ma volevo appunto soluzione rsync per capire e smanettare), poi come ripristino allora?
Devo fare backup su hd esterno per forza?