Copies_de_seguretat
Size: 5429
Comment:
|
Size: 6645
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 20: | Line 20: |
== Rsync == La comanda [http://samba.anu.edu.au/rsync/ rsync] és la que farem servir per dur a terme la copia de seguretat. ¿Per què no fem servir la comanda cp si del que es tracta és de copiar dades? El problema de cp és que, al fer la copia dels arxius, copiaria i sobreescriuria '''tots''' els arxius, incloent-hi els que no han canviat. Amb rsync, en canvi, copiarem només els arxius que hagin canviat, i és òbviament molt més adequat per al nostre propòsit. 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, actualitzar el contingut de la copia. En aquest cas, si algun arxiu i/o carpeta a la carpeta origen es borra, es conserva a la copia. Aquesta opció sembla ser la millor, ja que no correm el risc d'esborrar cap arxiu important i esborrar-lo també de la copia; l'únic a tenir en compte és que, si ho creiem necessari, haurem de mantenir neta la copia de seguretat esborrant manualment els arxius que ja no ens interessin. Amb 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. Per exemple: volem fer una copia 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}}} Altres opcions que hi podem afegir son: * --delete-excluded: si a la copia hi han arxius exclosos, els hi borra. És útil si hem canviat l'script de copia i ara ens interesa excloure'n certes carpetes i, a més, les volem borra de la copia. * --delete: esborra arxius de la copia. Si esborrem arxius de l'origen i actualitzem la copia amb aquesta opció, s'esborren també a la copia de seguretat. * --stats: ens dona informació sobre quanta informació ha canviat i s'ha copiat. * -nv: ens dirà quins fitxers i/o carpetes es copien, però sense dur a terme la copia. Resulta molt útil si hem de fer proves, ja que ens estalviem el tràfic de dades i sabrem que es copia. * -v: ens diu tots els arxius que s'han copiat/actualitzat, així com la quantitat d'informació que canvia i la velocitat. * man rsync: ens donarà moltissima informació referent a la comanda, amb exemples d'ús i amb l'explicació de les opcions possibles. |
|
Line 21: | Line 36: |
Aclaració: en el cas de -nv i -v, la v 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 == |
|
Line 29: | Line 47: |
if [ -d /media/WD120 ] | if [ -d /media/WD120 ] #Comprova si s'ha muntat el support |
Line 45: | Line 63: |
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). | Aquest pot ser un bon exemple. En aquest cas, el disc dur està en ext3 i s'ha etiquetat com a WD120 (es munta a /media/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). |
Line 52: | Line 70: |
== Rsync == La comanda {{{rsync}}} és la que farem servir per dur a terme la copia de seguretat. ¿Per què no fem servir la comanda cp si del que es tracta es de copiar dades? El problema de cp és que, al fer la copia dels arxius, copiaria i sobreescriuria '''tots''' els arxius, incloent-hi els que no han canviat. Amb rsync, en canvi, copiarem només els arxius que hagin canviat, i és òbviament molt més adequat per al nostre propòsit. 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. Aquesta opció sembla ser la millor, ja que no correm el risc d'esborrar cap arxiu important i esborrar-lo també de la copia; l'únic a tenir en compte és que, si ho creiem necessari, haurem de mantenir neta la copia de seguretat esborrant manualment els arxius que ja no ens interessin. Amb 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. Per exemple: volem fer una copia 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}}} D'igual manera, podem incloure |
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
Rsync
La comanda [http://samba.anu.edu.au/rsync/ rsync] és la que farem servir per dur a terme la copia de seguretat. ¿Per què no fem servir la comanda cp si del que es tracta és de copiar dades? El problema de cp és que, al fer la copia dels arxius, copiaria i sobreescriuria tots els arxius, incloent-hi els que no han canviat. Amb rsync, en canvi, copiarem només els arxius que hagin canviat, i és òbviament molt més adequat per al nostre propòsit.
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, actualitzar el contingut de la copia. En aquest cas, si algun arxiu i/o carpeta a la carpeta origen es borra, es conserva a la copia. Aquesta opció sembla ser la millor, ja que no correm el risc d'esborrar cap arxiu important i esborrar-lo també de la copia; l'únic a tenir en compte és que, si ho creiem necessari, haurem de mantenir neta la copia de seguretat esborrant manualment els arxius que ja no ens interessin. Amb 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. Per exemple: volem fer una copia 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
Altres opcions que hi podem afegir son:
- --delete-excluded: si a la copia hi han arxius exclosos, els hi borra. És útil si hem canviat l'script de copia i ara ens interesa excloure'n certes carpetes i, a més, les volem borra de la copia.
- --delete: esborra arxius de la copia. Si esborrem arxius de l'origen i actualitzem la copia amb aquesta opció, s'esborren també a la copia de seguretat.
- --stats: ens dona informació sobre quanta informació ha canviat i s'ha copiat.
- -nv: ens dirà quins fitxers i/o carpetes es copien, però sense dur a terme la copia. Resulta molt útil si hem de fer proves, ja que ens estalviem el tràfic de dades i sabrem que es copia.
- -v: ens diu tots els arxius que s'han copiat/actualitzat, així com la quantitat d'informació que canvia i la velocitat.
- man rsync: ens donarà moltissima informació referent a la comanda, amb exemples d'ús i amb l'explicació de les opcions possibles.
Aclaració: en el cas de -nv i -v, la v 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 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 ] #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à en ext3 i s'ha etiquetat com a WD120 (es munta a /media/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.
CatalanTeam/Recursos/Copies_de_seguretat (last edited 2009-04-26 13:55:10 by 20)