28-02-2021

rsyncFa molts anys que faig servir el sistema rsync per fer instantànies del meu sistema i mantenir-les en còpies de seguretat separades del disc principal. Això junt amb la sincronització dels meus diferents dispositius (sobretaula, portàtil i tauleta) amb unison, que explicaré en un article futur, permet tenir sempre al dia tota la informació i no córrer cap perill de pèrdua de dades en cas de defecte del maquinari. En aquest breu article explico com tinc configurada la pressa d'instantànies. Per una explicació molt detallada del sistema, i possiblement una configuració més pensada que la meva, consulteu el següent article en anglès:

http://www.mikerubel.org/computers/rsync_snapshots/

És millor seguir aquest article rer tenir tots els detalls del sistema i una guia més robusta que aquest article. Aquí simplement us explico com em funciona a mi. Em funciona tant bé i des de fa tants anys que a vegades m'oblido que el tinc en funcionament.

Què permet aquest sistema i què cal? El sistema permet tenir còpies (instantànies) dels volums amb directoris i fitxers que es desitgi amb la freqüència que es decideixi. Per exemple en el meu cas mantinc còpies de totes les meves dades (el disc dur sencer) de fa 1, 2 , 3 i 4 hores, de fa 1, 2 , 3  i 4 dies, de fa 1, 2, 3, i 4 setmanes, i de fa 1, 2, 3, 4, 5, 6, 7, 9, 10, 11 i 12 mesos. És a dir puc veure exactament el que hi havia al meu disc en qualsevol d'aquests moments, per exemple fa 7 mesos. Això també serveix per refer-se d'una eliminació involuntària de fitxers o directoris, si fa una hora existia, simplement he d'anar a la instantània de fa una hora, i el puc recuperar.

El directori d'instantànies per aquesta raó es veu així:

El que es veuen són directoris de les diferents instantànies amb tota la informació (tot el disc dur) per a aquests diferents moments indicats a dalt. Pensareu, cal un munt d'espai de disc per mantenir 23 diferents versions del mateix! La resposta és que no, perquè en realitat hi ha una sola còpia i la resta sols conté les diferències amb aquesta còpia mare, el que es diu còpia incremental. Això s'aconsegueix amb l'ordre "cp -a", que és una ordre estàndard de la línia d'ordres Linux, i el programa "rsync" que és un programa antic a Linux que permet sincronització unidireccional. Els detalls del funcionament tècnic d'aquestes còpies incrementals els podeu trobar a l'article citat. En realitat el que fa el sistema proposat és fer una sola còpia total de la informació desitjada (per exemple tot el disc dur) amb "rsync", i actualitzar la resta amb còpies incrementals amb "cp -a". L'espai que cal per les còpies de seguretat és el doble d'espai que la informació que volem copiar. Per exemple si tenim un disc dur de 1TB i volem mantenir una còpia de tot el disc cal un espai de 2TB per a les còpies, tot i que no l'omplirem mai perquè tampoc omplirem mai el disc original d'1 TB, però podem estar a prop d'omplir-lo.

Com funciona? La primera còpia que fa quan posem el sistema en marxa és una còpia total del sistema a "hourly.0" amb "rsync", A l'hora següent copia "hourly.0" a "hourly." amb "cp -a" i repeteix el pas 1. A la tercera hora mou "hourly.1" a "hourly.2", i repeteix el pas 2 i el pas 1. A la quarta hora mou "hourly.2" a "hourly.3" i repeteix tots els passos anteriors. A partir d'aquest moment, va esborrant "hourly.3" y repetints tots els passos. Aquests passos estan programats a "make_snapshot_1.sh". A la nit, un cop al dia, mou les instantànies diàries ("daily.2" a "daily.3, "daily.1" a "dayly.", i "daily.0" a "daily.1) i crea un nou "daily.0" copiant "hourly.3" amb "cp -a". Fa el mateix un cop a la setmana per mantenir "weely.0" a "weekly.3", i un cop al mes per mantenir "monthly.0" a "monthly.12".

Sols faltaria programar amb cron que aquest scripts s'executin als moments previstos, els "hourly.0" cada hora, els "daily" cada dia a la mitjanit, i així els altres amb la freqüència de cada u.  Jo en realitat tinc aquests scripts duplicats perquè vaig fent les còpies en 2 discos diferents de 2 TB cadascú, per si falla un d'aquests discos. Aquestes són les meves entrades al cron:

MAILTO="correu electrònic"

0 */4 * * * /home/wgarcia/jobs/make_snapshot_1.sh

0 2,6,10,14,18,22 * * * /home/wgarcia/jobs/make_snapshot_2.sh

0 1 * * * /home/wgarcia/jobs/daily_snapshot_rotate_1.sh

0 3 * * * /home/wgarcia/jobs/daily_snapshot_rotate_2.sh

0 2 * * 0 /home/wgarcia/jobs/weekly_snapshot_rotate_1.sh

0 4 * * 0 /home/wgarcia/jobs/weekly_snapshot_rotate_2.sh

0 3 28 * * /home/wgarcia/jobs/monthly_snapshot_rotate_1.sh

0 5 28 * * /home/wgarcia/jobs/monthly_snapshot_rotate_2.sh

No explico aquí com funciona el cron, però bàsicament va cridant aquests scripts amb la freqüència requerida. Els scripts són força simples, no tenen res que s'hagi de configurar excepte els volums que voleu mantenir a les còpies de seguretat i el lloc on manteniu aquestes còpies, que per a mi és /mnt/Backup1/Work per al primer disc i /mnt/Backup2/Work per al segon. Idealment haurien d'estar muntats en una màquina (a un lloc diferent) que el vostre ordinador, per si al lloc on està el vostre ordinador li passa allò de la Casa Usher i desapareix del mapa. Però estan en un altre disc, intern o extern, hauria ja de ser suficient per tenir les dades protegides.

Aquí teniu els script, que també inclouen un "exclude" per si voleu excloure alguns fitxers/directoris de la còpia de seguretat, per exemple fitxers temporaris que no tenen cap utilitat. Sols heu de canviar la localització on teniu muntat el disc de les còpies de seguretat, és a dir canviar "/mnt/Backup1/work" pel camí al vostre disc, i canviar els directoris, volums que coleu copiar a "make_snapshot_1.sh". Si voleu tenir un segon disc de seguretat, creeu versions "2" del mateix sols canviant el camí perquè apunti al segon disc.

Fitxers:

make_snapshot_1.sh

daily_snapshot_rotate_1.sh

weekly_snapshot_rotate_1.sh

monthly_snapshot_rotate_1.sh

backup_exclude

 

 

Tags:
Funciona amb el Drupal

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer