Copies_de_seguretat

IMPORTANT: degut a que es treballa amb dades, es recomana fer abans de començar una copia de seguretat manual de les dades importants. En cas de pèrdua de dades ningú se'n farà responsable, aneu amb cura i sense presa

Introducció

El nostre objectiu és que al connectar un disc dur extern (o un llapis de memòria) concret, automàticament es generi una còpia 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 el script s'executi només quan connectem un dispositiu en concret. Per a fer això, farem a un terminal:

  •  udevinfo -a -p $(udevinfo -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 el fitxer udevinfo.log amb tota la informació necessària.

El següent pas serà crear un fitxer amb les regles d'udev pel nostre dispositiu:

  • gksudo gedit /etc/udev/rules.d/99-copia.rules 

En aquest fitxer, 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 com 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 una altra clau s'haurà de tenir en compte respectar l'ordre de les entrades al fitxer udevinfo.log.

Després de crear el fitxer amb les nostres regles, el pas següent és fer que l'udev reconegui aquesta norma. Per a 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 reconeixerà. El següent serà crear el script que volem executar quan connectem el nostre disc dur. Aquest script el podem crear a qualsevol lloc, ja sigui dins 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 còpia de seguretat

Rsync

L'ordre rsync és la que farem servir per a dur a terme la còpia de seguretat. Per què no fem servir l'ordre cp si del que es tracta és de copiar dades? El problema de cp és que, al fer la còpia dels fitxers, copiaria i sobreescriuria tots els fitxers, incloent-hi els que no han canviat. Amb rsync, en canvi, copiarem només els fitxers que hagin canviat, i és òbviament molt més adequat i eficient pel nostre propòsit.

L'ús típic seria:

  • rsync -ur origen desti

Amb aquesta ordre, el que fem és sincronitzar la carpeta origen amb la carpeta destí i, si ho fem varies vegades, actualitzar el contingut de la còpia només si ha hagut canvis des de l'última sincronització. En aquest cas concret, si algun fitxer i/o directori s'esborra del directori origen, es conserva a la còpia. Aquesta opció sembla ser la millor, ja que no correm el risc d'esborrar cap fitxer important i esborrar-lo també de la còpia; l'únic a tenir en compte és que, si ho creiem necessari, haurem de mantenir neta la còpia de seguretat esborrant manualment els fitxers que ja no ens interessin. Amb rsync podem especificar excepcions a l'hora de copiar, de manera que podem excloure certs fitxers i/o directoris del directori origen, per tal de no tenir-los a la còpia de seguretat. Per exemple: volem fer una còpia de /home/USUARI a /COPIA, però en volem excloure la carpeta /home/USUARI/temporals; per a fer això, l'ordre seria:

  • rsync -ur --exclude="/home/USUARI/temporals" /home/USUARI /COPIA

Altres opcions que hi podem afegir son:

  • --delete-excluded: si a la còpia hi han fitxers exclosos, els elimina. És útil si hem canviat l'script de còpia i ara ens interessa excloure'n certs directoris i, a més, els volem eliminar de la còpia.

  • --delete: elimina fitxers de la còpia. Si eliminem fitxers de l'origen i actualitzem la còpia amb aquesta opció, s'esborren també a la còpia de seguretat.

  • --stats: ens dóna informació sobre quantes dades han canviat i s'han sincronitzat (copiat).

  • -nv: ens dirà quins fitxers i/o carpetes es copien, però sense dur a terme la còpia. Resulta molt útil si hem de fer proves, ja que ens estalviem el tràfic de dades i sabrem què es copiarà quan ho fem en ferm.

  • -v: ens diu tots els fitxers que s'han copiat/actualitzat, així com la quantitat d'informació que canvia i a quina velocitat.

  • man rsync: ens donarà moltíssima informació referent a l'ordre, amb exemples d'ús i amb l'explicació de les opcions possibles.

Aclariment: en el cas de -nv i -v, la v (verbose) correspon al mateix, incrementar la informació de sortida. Podem combinar varies opcions com vulguem. És el mateix fer -u -r -v -n que -ur -vn o -urvn.

Exemple d'script

En aquest apartat només veurem un petit exemple d'una manera de fer una còpia de seguretat.

# Script per fer copia de seguretat

sleep 15

if [ -d /media/WD120 ]   #Comprova si s'ha muntat el support

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 pot ser un bon exemple. En aquest cas, el disc dur està formatat en ext3 i s'ha etiquetat com a WD120 (es munta a /media/WD120) i, mitjançant l'ordre rsync es copia el directori /home de l'usuari patrick a /media/WD120/portatil. Addicionalment, es crea un registre 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, al fitxer copies.log s'hi escriu quan s'ha iniciat la còpia i quan s'ha acabat de fer.

Amb aquest script sempre sabrem en quin moment es va dur a terme la còpia 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 còpia de seguretat o quan va ser l'últim dia que es va fer.

L'exemple anterior té un petit problema: només s'exclouen alguns directoris ocults (que són de configuració de programari), encara que el més probable es que només ens n'interessin 2 o 3. Podem modificar l'ordre i possar-hi el següent:

rsync -ur --stats --include="patrick/.mozilla" --include="patrick/.aMule" --include="patrick/.mozilla-thunderbird" --include="patrick/.amsn" --include="patrick/.VirtualBox" --exclude="patrick/.*" /home/patrick /media/WD120/portatil/ >> /media/WD120/logs/portatil/HOME\ "$(date)".log

Això en principi exclou qualsevol fitxer o directori ocult, menys el que li especifiquem clarament: el de l'aMule, del thunderbird, el firefox i l'amsn. Així s'optimitza una mica la copia, ja que és molt probable que els directoris .icedteaplugin o .pulse no ens interessin per a res. Es important posar els directoris que volem incloure en la copia abans de les exclusions.


CategoryTutorialsEnCatala

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