Copies_de_seguretat

Differences between revisions 2 and 3
Revision 2 as of 2008-07-17 21:21:29
Size: 3974
Editor: 234
Comment:
Revision 3 as of 2008-07-18 18:49:20
Size: 4993
Editor: 212
Comment:
Deletions are marked like this. Additions are marked like this.
Line 53: Line 53:
== Consideracions == == Rsync ==

La comanda {{{rsync}}} és la que farem servir per dur a terme la copia de seguretat. L'ús típic seria {{{rsync -ur origen desti}}}. Amb aquesta comanda, el que fem es copiar la carpeta origen a la carpeta destí i, si ho fem varies vegades, s'actualitza el contingut. En aquest cas, si algun arxiu i/o carpeta a la carpeta origen es borra, es manté a la carpeta destí, es conserva la copia. Per tant, aquesta opció és la millor, ja que no correm el risc d'esborrar un arxiu important i liquidar-lo també a la copia; l'únic a tenir en compte és que haurem de mantenir neta la copia de seguretat esborrant els arxius manualment.

En rsync podem especificar excepcions a l'hora de copiar, de manera que podem excloure certs arxius i/o carpetes de la carpeta origen, per tal de no tenir-los a la copia de seguretat. Exemple: volem fer una copiar de /home/USER a /COPIA, però en volem excloure la carpeta /home/USER/temporals; per fer això, l'ordre seria {{{rsync -ur --exclude="USER/temporals" /home/USER /COPIA}}}

ARTICLE INCOMPLET

Introducció

El nostre objectiu és que, al connectar un disc dur extern (o un llapis de memòria) concret, automàticament es generi una copia de seguretat de certes dades elegides. Amb l'ajuda d'udev serà molt senzill.

Escrivint una regla d'udev

El primer que cal fer és esbrinar els detalls del nostre disc dur, de manera que l'script s'executi només quan connectem un dispositiu en concret. Per fer això, en un terminal farem:  udevinfo -a -p '-q path -n /dev/sdX' > ~/Escriptori/udevinfo.log, substituint la X per la lletra que toqui. Per saber-la, el més senzill és fer ls /dev/sd* amb el disc dur desconnectat i fer-ho a continuació un cop connectat, la lletra afegida un cop connectat és la corresponent al disc dur extern. Després de fer això tindrem a l'escriptori l'arxiu udevinfo.log amb tota la informació necessària.

El següent pas serà crear un arxiu amb les regles d'udev per al nostre dispositiu: gksudo gedit /etc/udev/rules.d/99-copia.rules . En aquest arxiu, hi hem de posar el següent:

KERNEL=="sd[a-z]1", ATTRS{manufacturer}=="EL-QUE-TOQUI", ATTRS{serial}=="EL-QUE-TOQUI", ACTION=="add", RUN+="/ruta/de/l'script"

El valor de les claus manufacturer i serial les hem de copiar EXACTAMENT IGUAL que surten al nostre fitxer udevinfo.log. Addicionalment, hi podem posar també la clau ATTRS{product} o qualsevol altra, però en principi amb manufacturer i serial n'hi haurà més que prou. En cas de posar un altre clau s'haurà de tenir en compte de respectar l'ordre de les entres a l'arxiu udevinfo.log.

Després de crear l'arxiu amb les nostres regles, el pas següent és fer que l'udev reconegui aquesta norma. Per fer això n'hi haurà prou amb fer, en un terminal,  sudo /etc/init.d/udev reload 

Ara ja tenim creada la nostra norma i, en principi, l'udev la reconeix. El següent serà crear l'script que volem executar a la connexió del nostre disc dur. Aquest script el podem crear a qualsevol lloc, ja sigui dintre del nostre home o sota /opt, /usr/local o qualsevol ubicació que ens sembli adequada. Un cop creat, l'hem de marcar com a executable amb l'ordre  sudo chmod +x /ruta/de/l'script 

Script de copia de seguretat

En aquest apartat només veure un petit exemple d'una manera de fer una copia de seguretat.

# Script per fer copia de seguretat

sleep 15

if [ -d /media/WD120 ]

then

echo "Inici de copia: $(date)" >> /media/WD120/logs/portatil/copies.log

rsync -ur --stats --exclude="patrick/.Trash" --exclude="patrick/.cache" --exclude="patrick/.thumbnails" --exclude="patrick/Examples" --exclude="patrick/.adobe" --exclude="patrick/.openoffice.org2" /home/patrick /media/WD120/portatil/ >> /media/WD120/logs/portatil/HOME\ "$(date)".log

rsync -ur --stats /media/dades/mp3 /media/WD120  >> /media/WD120/logs/portatil/MP3\ "$(date)".log

echo "Final de copia: $(date)
" >> /media/WD120/logs/portatil/copies.log

fi

Aquest és un bon exemple. En aquest cas, el disc dur està en ext3 i s'ha etiquetat com a WD120 i, mitjançant la comanda rsync es copia el directori home de l'usuari patrick a /media/WD120/portatil. Addicionalment, es crea un log de l'operació (amb un resum de la quantitat de dades que s'han copiat) a /media/WD120/logs/portatil amb el nom HOME data.log (exemple: HOME dj jul 17 23:05:14 CEST 2008.log).

Després es copia la carpeta /media/dades/mp3 a /media/WD120 i es crea un MP3 data.log.

A més a més, a l'arxiu copies.log s'hi escriu quan s'ha iniciat la copia i quan s'ha acabat de fer.

Amb aquest script sempre sabrem en quin moment es va dur a terme la copia de seguretat, quan va tardar en fer-se i la quantitat de dades que es van copiar. Aquesta informació ens pot resultar útil per determinar si un dia vam o no vam fer la copia de seguretat o quan va ser l'ultim dia que es va fer.

Rsync

La comanda rsync és la que farem servir per dur a terme la copia de seguretat. L'ús típic seria rsync -ur origen desti. Amb aquesta comanda, el que fem es copiar la carpeta origen a la carpeta destí i, si ho fem varies vegades, s'actualitza el contingut. En aquest cas, si algun arxiu i/o carpeta a la carpeta origen es borra, es manté a la carpeta destí, es conserva la copia. Per tant, aquesta opció és la millor, ja que no correm el risc d'esborrar un arxiu important i liquidar-lo també a la copia; l'únic a tenir en compte és que haurem de mantenir neta la copia de seguretat esborrant els arxius manualment.

En rsync podem especificar excepcions a l'hora de copiar, de manera que podem excloure certs arxius i/o carpetes de la carpeta origen, per tal de no tenir-los a la copia de seguretat. Exemple: volem fer una copiar de /home/USER a /COPIA, però en volem excloure la carpeta /home/USER/temporals; per fer això, l'ordre seria rsync -ur --exclude="USER/temporals" /home/USER /COPIA

CatalanTeam/Recursos/Copies_de_seguretat (last edited 2009-04-26 13:55:10 by 20)