Rsync

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

Rsync és una aplicació informàtica i un protocol de comunicació per sistemes estil Unix i Windows que sincronitza fitxers i directoris des de una ubicació cap a una altra minimitzant la transferència de dades. Rsync també permet fer còpia de fitxers i directoris fent servir compressió o recursivitat.

rsync -aP --delete [Carpeta orige] [Carpeta destí]
# Exemple de rsync per a fer cópies de seguretat incrementals

Mentre que l'algorisme rsync forma part del nucli de l'aplicació rsync i essencialment optimitza les transferències entre dues computadores sobre TCP/IP, l'aplicació rsync proveeix altres funcions que assisteixen en la transferència. Aquestes inclouen compressió i descompressió de les dades bloc per bloc, utilitzant zlib a enviar i rebre, i suport per a protocols de xifrat, tal com SSH, el que permet transmissió xifrada i eficientment diferenciada de dades comprimits utilitzant l'algorisme rsync.

Addicionalment pot utilitzar-se una aplicació de tunneling també per crear un túnel xifrat que asseguri les dades transmeses.

A més d'arxius, l'algorisme permet copiar directoris, tot recursivament, així com vincles, dispositius, grups i permisos. No requereix per defecte privilegis de root per al seu ús.

rsync va ser escrit com un reemplaçament de rcp i SCP. Una de les primeres aplicacions de rsync va ser el emmirallat (mirroring) o respatller de múltiples clients Unix dintre d'un servidor Unix central, utilitzant rsync / ssh i comptes estàndards d'Unix. Habitualment s'executa mitjançant eines de scheduling com cron, per automatitzar processos de sincronització entre múltiples ordinadors host i servidors centrals.

Copies de seguretat amb rsync

Una de les maneres més potents i bàsiques de fer copies de seguretat és rsync. Per exemple, imagina que tens un directori anomenat source/ i un altre destination/

rsync -a source/ destination/


Aquest comandament és equivalent a:

cp -a source/. destination/

En la diferència de que és molt més eficient.

Si el destí està en una màquina remota:

rsync -a -e ssh source/ username@remotemachine.com:/path/to/destination/

Es pot fer la transmissió per SSH

--delete

Les copies de seguretat poden ser absolutes o incrementals. Si són absolutes dona igual que s'utilitze cp que rsync. En el cas de les incrementals, el rsync sols envía les novetats de l'orige. D'aquesta manera la transmissió és molt més eficient.

Però hi ha un problema, si sols enviem els fitxers nous, els fitxers borrats no s'esborren del destí. Amb l'opció --delete, el destí serà exactament igual a l'orige.

$ rsync -a --delete source/ destination/

Cal utilitzar aquesta opció amb molta cura, ja que, si es fà la copia de seguretat després de borrar un fitxer important, es perdrà en els dos costats.

Es pot utilitzar cron:

$ crontab -e

Afegint:

20 4 * * * rsync -a --delete source/ destination/

Copies de seguretat incrementals

Observa aquest script:

rm -rf backup.3
mv backup.2 backup.3
mv backup.1 backup.2
cp -al backup.0 backup.1
rsync -a --delete source_directory/  backup.0/

Manté 4 copies de seguretat. La 1,2 i 3 són versions antigues de les copies de seguretat. La 0 es copia totalment a la 1 cada vegada. Però la 0 és actualitzada de manera incremental amb l'opció --delete. Si la copia 0 queda mal a causa del --delete, encara queda la 1,2 i 3 per poder recuperar coses perdudes.

Servidor rsync

rsync sobre SSH

Opcions

Enllaços

http://rsync.samba.org/examples.html

http://es.wikipedia.org/wiki/Rsync

http://acacha.org/mediawiki/index.php/Rsync

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