backup incrementale con rsync

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

backup incrementale con rsync

Messaggioda conraid » gio set 20, 2018 13:12

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.

miklos
Linux 4.x
Linux 4.x
Messaggi: 1442
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: backup incrementale con rsync

Messaggioda miklos » ven set 21, 2018 13:52

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)
ho visto cose che voi astemi non potete immaginare

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 14:21

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?

miklos
Linux 4.x
Linux 4.x
Messaggi: 1442
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: backup incrementale con rsync

Messaggioda miklos » ven set 21, 2018 14:45

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 :)
ho visto cose che voi astemi non potete immaginare

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 15:02

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

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2480
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: backup incrementale con rsync

Messaggioda ponce » ven set 21, 2018 15:44

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).
Ultima modifica di ponce il ven set 21, 2018 18:34, modificato 1 volta in totale.

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 16:39

Sì, come fanno appunto molti script e software. Non mi tornano alcune cose.

Le prime directory come le creo?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2480
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: backup incrementale con rsync

Messaggioda ponce » ven set 21, 2018 17:00

le puoi fare anche vuote.

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 17:16

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

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2480
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: backup incrementale con rsync

Messaggioda ponce » ven set 21, 2018 18:32

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

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 18:39

Ok. Perfetto,

Se voglio fare un restore come faccio?
Metti voglio backup3

cp -al sempre o altro?

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2480
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: backup incrementale con rsync

Messaggioda ponce » ven set 21, 2018 18:45

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).

miklos
Linux 4.x
Linux 4.x
Messaggi: 1442
Iscritto il: lun lug 16, 2007 17:39
Slackware: 14.1 64bit
Kernel: 3.16.3
Desktop: openbox 3.5.2
Località: Roma

Re: backup incrementale con rsync

Messaggioda miklos » ven set 21, 2018 18:51

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?!
ho visto cose che voi astemi non potete immaginare

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2480
Iscritto il: mer mar 05, 2008 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 4.19.0-rc8
Desktop: lxde
Località: Pisa
Contatta:

Re: backup incrementale con rsync

Messaggioda ponce » ven set 21, 2018 19:09

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)

Avatar utente
conraid
Staff
Staff
Messaggi: 13206
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: backup incrementale con rsync

Messaggioda conraid » ven set 21, 2018 19:44

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?