Sunteți pe pagina 1din 12

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

Lo hice y lo entend
El blog de Vicente Navarro

Backups con rsync


En Piensas en si un da te roban el porttil? mencion que me gusta hacer los backups
con rsync. Me gusta usarlo para backups tanto locales (copiar cheros de un directorio a
otro del mismo sistema) como remotos (copiar cheros de un sistema a otro), y tanto en
en Linux como en Windows usando Cygwin sin ningn problema de interoperabilidad
para hacer backups remotos usando uno u otro como destino de las copias de seguridad.
es una herramienta para sincronizar los cheros y directorios que tenemos
almacenados en un sitio en otro diferente minimizando la transferencia de datos
(Wikipedia: rsync). En realidad, rsync son dos cosas: un algoritmo de delta compression
para sincronizar dos cheros similares y una utilidad que usa dicho algoritmo junto con
otras tcnicas para hacer mirroring de cheros y directorios en otro sitio transriendo la
mnima cantidad de datos posible.
rsync

A nivel de un rbol de directorios con sus cheros, la idea es sencilla. rsync nos copiar
esos cheros y directorios tal y como estaban en el nuevo sitio pero sin copiar todo, sino
slo lo que ha cambiado en el origen respecto al destino. Hacer lo mismo copiando los
cheros y directorios, incluso en remoto usando una carpeta compartida, sera
equivalente si nos jamos nicamente en el resultado, pero tenemos que transferir
mucha ms informacin.
A nivel de cheros individuales, podemos imaginar un chero muy grande (p.e. de varios
GiB) de una base de datos. Si quisiramos hacer backup de l sin tener herramientas
como rsync, tendramos que copiarlo cada vez, cuando en realidad en muchos casos la
inmensa mayora de bloques del chero no habr cambiado. rsync, en cambio, analiza el
chero en origen y en destino y slo transmite (de forma comprimida, adems) las partes
que realmente hayan cambiado.
Debian, por ejemplo, pone a nuestra disposicin servidores de rsync para descargar sus
imgenes de CDs, aunque hay un debate sobre si el descenso en el uso de ancho de
banda de los servidores compensa el aumento en el uso de CPU y memoria a causa del
propio algoritmo de rsync (About integration of rsync and Debian). Y es que rsync consume
la CPU necesaria para su algoritmo y adems mantiene en memoria una lista con todos
los cheros a ser sincronizados (unos 100 bytes por cada uno), por lo que necesita
bastante memoria. Tambin se debate el problema de que el rsync no es muy eciente
con cheros comprimidos con gzip y con bzip2 porque un pequeo cambio en el contenido
modica en cadena todo el archivo creando una especie de efecto mariposa que causa
que dos archivos parecidos no guarden ninguna semejanza aprovechable por rsync tras la
compresin.
En cualquier caso, si las anteriores pequeas pegas no nos detienen, veremos que rsync
es, en denitiva, una excelente utilidad de lnea de comandos para hacer copias de

1 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

seguridad locales y remotas.


El listado de caractersticas especiales que nos da la pgina de man de

rsync

es:

Soporte para copiar enlaces, cheros de dispositivo, propietarios, grupos y permisos


Opciones de exclusin (exclude y exclude-from) similares a las del GNU tar
Modo CVS para ignorar los chero que CVS ignorara
Se puede usar cualquier shell remota transparente, como ssh o rsh
No es necesario ser root para usarlo
pipelining de los cheros transferidos para minimizar la latencia
Soporte para usuarios annimos o autenticados usando el demonio de rsync (ideal
para hacer mirroring)
En su forma ms sencilla de uso, es similar a un cp. Si queremos sincronizar un chero en
otro podemos, simplemente, hacer (el -v es para que nos muestre informacin ms
detallada sobre lo que hace):
$ ll fichero1
-rw-r----- 1 vicente users 7625431 2008-01-13 11:40 fichero1
$ rsync -v fichero1 fichero2
fichero1
sent 7626448 bytes received 42 bytes 15252980.00 bytes/sec
total size is 7625431 speedup is 1.00
$ ll fichero?
-rw-r----- 1 vicente users 7625431 2008-01-13 11:40 fichero1
-rw-r----- 1 vicente users 7625431 2008-01-13 11:41 fichero2

Pero si el comando lo ejecutamos desde otro usuario (en el ejemplo root), vemos que no
se est manteniendo el usuario, aunque s los permisos, y que incluso la hora es
diferente:
# rsync fichero1 fichero3
# ll fichero?
-rw-r----- 1 vicente users 7625431 2008-01-13 11:40 fichero1
-rw-r----- 1 vicente users 7625431 2008-01-13 11:41 fichero2
-rw-r----- 1 root
root 7625431 2008-01-13 11:44 fichero3

Y tampoco es capaz de hacer nada con directorios:


$ rsync dirA dirB
skipping directory dirA

Por eso, para propsitos de backup, el


opcin -a:
-a, --archive

rsync

en la mayora de los casos se utiliza con la

archive mode; same as -rlptgoD (no -H, -A)

Esta opcin combina el parmetro -r para que el recorra toda la estructura de directorios
que le indiquemos, el -l para que copie enlaces simblicos como enlaces simblicos, la -p
para que mantenga los permisos, la -t para que se mantenga la hora del chero, la -g
para que se mantenga el grupo, la -o para que se mantenga el propietario, la -D para que
se mantengan los cheros de dispositivo (slo para root). Ni se mantienen los hard links

2 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

(-H) ni las ACLs (-A) por defecto. En denitiva, con la opcin


exacta de una jerarqua de cheros y directorios.

-a

obtenemos una copia

Veamos un ejemplo de sincronizacin de un directorio llamado dirA que contiene otros


directorios y cheros en otro llamado dirB que, de momento, an no existe:
$ rsync -av dirA/ dirB/
building file list ... done
created directory dirB
dirA/
dirA/fichero1
dirA/fichero2
dirA/dirA1/
dirA/dirA1/fichero3
dirA/dirA2/
dirA/dirA2/fichero4
sent 6540542 bytes received 126 bytes
total size is 6539349 speedup is 1.00

13081336.00 bytes/sec

Si ahora modicamos un poco slo uno de los cheros y volvemos a ejecutar


exactamente el mismo comando, veremos que esta vez slo se copia el chero
modicado:
$ echo prueba >> dirA/fichero1
$ rsync -av dirA dirB
building file list ... done
fichero1
sent 65884 bytes received 42 bytes 131852.00 bytes/sec
total size is 6539356 speedup is 99.19

Sin embargo, vemos que aunque el chero sea slo ligeramente distinto,
el chero completo cada vez:

rsync

copia todo

$ rm fichero2
$ rsync -av fichero1 fichero2
fichero1
sent 7626462 bytes received 42 bytes 15253008.00 bytes/sec
total size is 7625445 speedup is 1.00
$ echo prueba >> fichero1
$ rsync -av fichero1 fichero2
fichero1
sent 7626469 bytes received 42 bytes 15253022.00 bytes/sec
total size is 7625452 speedup is 1.00

No es que haya ningn defecto en su algoritmo, es que para un uso en local, rsync usa la
opcin -W por defecto, ya que considera que el esfuerzo en calcular la diferencia entre los
cheros es mayor que copiar directamente todo el chero:
-W, --whole-file

copy files whole (without rsync algorithm)

Si contrarrestamos la -W con --no-whole-file veremos que que ahora s que slo copia el
bloque donde ha encontrado el cambio:
3 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

$ echo prueba >> fichero1


$ rsync -av --no-whole-file fichero1 fichero2
building file list ... done
fichero1
sent 13514 bytes received 16620 bytes 20089.33 bytes/sec
total size is 7625459 speedup is 253.05

Y si encima usamos la opcin

-z,

comprimir el bloque antes de pasarlo:

$ echo prueba >> fichero1


$ rsync -avz --no-whole-file fichero1 fichero2
building file list ... done
fichero1
sent 843 bytes received 16620 bytes 34926.00 bytes/sec
total size is 7625466 speedup is 436.66

El uso de la opcin -z puede ser benecioso o perjudicial, ya que la menor transferencia


de datos redunda en un mayor consumo de CPU.
Por cierto, en qu se basa rsync para decidir que un chero ha cambiado? Normalmente
slo mira la fecha del chero y su tamao, por lo que si ninguna de las dos cosas cambia,
por defecto el rsync no copiar el chero. Es muy raro que dos cheros con la misma
fecha y tamao sean diferentes, pero puede ocurrir. Si en nuestro entorno se puede dar
ese caso, tendremos que usar la opcin -c para que se determine por CRC si realmente
los cheros son iguales:
-c, --checksum

skip based on checksum, not mod-time & size

Pero claro, esto tambin aumentar sensiblemente el uso de CPU.


La barra al nal de los nombres de directorio
Respecto a cmo pasarle los nombres de los directorios, hay que tener una especial
atencin respecto a si ponemos una barra al nal del nombre del directorio o no, ya que
signican cosas distintas:
You can think of a trailing / on a source as meaning copy the contents of this
directory as opposed to copy the directory by name, but in both cases the
attributes of the containing directory are transferred to the containing directory
on the destination. In other words, each of the following commands copies the
les in the same way, including their setting of the attributes of /dest/foo:
rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/foo

Efectivamente, /path/foo signica el directorio foo, mientras que /path/foo/ signica lo


que hay dentro de foo. Pongamos algunos ejemplos para entenderlo.
Este es el uso ms estndar en el que sincronizamos dos directorios ( dirA y
sean exactamente iguales (rsync -av dirA/ dirB/ o rsync -av dirA/ dirB):

dirB)

para que

$ rm -rf dirB

4 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

$ rsync -av dirA/ dirB/


building file list ... done
created directory dirB
./
fichero1
fichero2
dirA1/
dirA1/fichero3
dirA2/
dirA2/fichero4
sent 6540550 bytes received 126 bytes
total size is 6539363 speedup is 1.00
$ ll dirB
total 164
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
-rwxr-xr-x
-rw-r--r--

4
4
2
2
1
1

vicente
vicente
vicente
vicente
vicente
vicente

13081352.00 bytes/sec

users 4096 2008-01-13


users 4096 2008-01-13
users 4096 2008-01-13
users 4096 2008-01-13
users 65638 2008-01-13
users 71033 2008-01-13

11:48
14:00
11:48
11:59
13:59
11:39

En cambio, si lo que queremos es que que copie


rsync -av dirA dirB/ o rsync -av dirA dirB:

./
../
dirA1/
dirA2/
fichero1*
fichero2

dirA

dentro de

dirB,

tenemos que poner

$ rm -rf dirB
$ rsync -av dirA dirB
building file list ... done
created directory dirB
dirA/
dirA/fichero1
dirA/fichero2
dirA/dirA1/
dirA/dirA1/fichero3
dirA/dirA2/
dirA/dirA2/fichero4
sent 6540549 bytes received 126 bytes
total size is 6539356 speedup is 1.00

13081350.00 bytes/sec

$ ll dirB
total 12
drwxr-xr-x 3 vicente users 4096 2008-01-13 13:35 ./
drwxr-xr-x 4 vicente users 4096 2008-01-13 13:35 ../
drwxr-xr-x 4 vicente users 4096 2008-01-13 11:48 dirA/

La diferencia entre poner la barra al nal y no ponerla es una de las cosas que tenemos
que tener en todo momento ms claras a la hora de pensar en qu parmetros le vamos
a pasar al comando para hacer un backup con rsync con xito.
Eliminando cheros del destino de backups anteriores
En muchos casos, es posible que hayamos borrados cheros de origen que ya no
queremos que aparezcan en el destino, pero por defecto rsync no los elimina. Para que lo
haga, debemos usar la opcin --delete:

5 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

$ rm -rf dirB/
$ rsync -a dirA/ dirB/
$ touch dirB/ficheroextrao
$ rsync -av dirA/ dirB/
building file list ... done
./
sent 199 bytes received 26 bytes 450.00 bytes/sec
total size is 6539363 speedup is 29063.84
$ rsync -av --delete dirA/ dirB/
building file list ... done
deleting ficheroextrao
./
sent 199 bytes received 26 bytes 450.00 bytes/sec
total size is 6539363 speedup is 29063.84

Cuando se hagan pruebas con el --delete hay que llevar mucho cuidado, porque si
elegimos errneamente el directorio de destino podemos borrar en cascada muchsimos
cheros que no queramos borrar. Es por eso que se aconseja que se use en las pruebas
la opcin -n/--dry-run para que el comando no haga nada en realidad y as podamos
depurar el comando antes de ponerlo en funcionamiento denitivamente.
Otra opcin que puede ser interesante en algunos entorno es la -u, para que no se
sobreescriban los cheros del destino que son ms recientes que los del origen. Esta
opcin es til si es posible que en un momento dado se trabaje sobre los cheros del
backup, de modo que en ningn caso reemplacemos los archivos que se puedan haber
modicado en destino:
$ touch dirB/fichero1
$ rsync -av --delete dirA/ dirB/
building file list ... done
fichero1
sent 65885 bytes received 42 bytes 131854.00 bytes/sec
total size is 6539363 speedup is 99.19
$ touch dirB/fichero1
$ rsync -av --delete -u dirA/ dirB/
building file list ... done
sent 193 bytes received 20 bytes 426.00 bytes/sec
total size is 6539363 speedup is 30701.23

Y en este punto, ya tenemos varias forma de usar el comando perfectamente vlidas


para hacer backups en funcin de nuestras necesidades:
$
$
$
$

rsync
rsync
rsync
rsync

-av
-av
-av
-av

--delete
--delete
--delete
--delete

directorioorigen/ directoriodestino/
directorioorigen directoriodestino
-u directorioorigen/ directoriodestino/
-u directorioorigen directoriodestino

Backups incrementales
Si queremos tener un archivo con los cheros que vamos modicando, un backup

6 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

incremental, las opciones -b/--backup y


mucha utilidad para nosotros.

--backup-dir=DIR

Supongamos que tenemos dos directorios dirA y


actualizamos un chero en el directorio origen:

dirB

(y tambin

--suffix=SUF)

son de

perfectamente sincronizados y

$ rsync -a dirA/ dirB/


$ echo prueba >> dirA/fichero1

Si volvemos a sincronizar, el rsync borrara el dichero dirA/fichero1 que tenamos


almacenado del backup anterior en dirB. Para que no nos lo elimine completamente,
vamos a usar la opcin -b y le vamos a decir que almacene la versin previa en el
directorio backup_fechahoradehoy (ponemos dos opciones -v para que nos informe sobre el
backup):
$ rsync -avvb --delete --backup-dir=$PWD/rsync/backup_$(date +%y%m%d%H%M) dirA/ dirB/
backup_dir is /home/vicente/rsync/backup_0801131917/
building file list ...
done
deleting in .
delta-transmission disabled for local transfer or --whole-file
fichero1
fichero2 is uptodate
dirA1/fichero3 is uptodate
dirA2/fichero4 is uptodate
backed up fichero1 to /home/vicente/rsync/backup_0801131917/fichero1
total: matches=0 hash_hits=0 false_alarms=0 data=65708
sent 65991 bytes received 78 bytes 132138.00 bytes/sec
total size is 6539433 speedup is 98.98

Y vemos que ya tenemos un directorio de backup que slo contiene los chero que han
sido reemplazados esta vez:
$ ll
total 20
drwxr-xr-x 5 vicente users 4096
drwxr-x--- 56 vicente users 4096
drwxr-xr-x 2 vicente users 4096
drwxr-xr-x 4 vicente users 4096
drwxr-xr-x 5 vicente users 4096

2008-01-13
2008-01-13
2008-01-13
2008-01-13
2008-01-13

19:18
18:43
19:17
11:48
11:48

./
../
backup_0801131917/
dirA/
dirB/

$ ll backup_0801131917/
total 80
drwxr-xr-x 2 vicente users 4096 2008-01-13 19:17 ./
drwxr-xr-x 5 vicente users 4096 2008-01-13 19:18 ../
-rwxr-xr-x 1 vicente users 65701 2008-01-13 19:17 fichero1*

Si ahora modicamos otro chero, veremos que antes de reemplazarse, se almacenar


en un nuevo directorio de backup:
$ echo prueba >> dirA/fichero2
$ rsync -ab --delete --backup-dir=$PWD/backup_$(date +%y%m%d%H%M) dirA/ dirB/
$ ll
total 28
drwxr-xr-x 7 vicente users 4096 2008-01-13 19:21 ./
drwxr-x--- 56 vicente users 4096 2008-01-13 18:43 ../

7 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync


drwxr-xr-x 2 vicente users 4096
drwxr-xr-x 2 vicente users 4096
drwxr-xr-x 4 vicente users 4096
drwxr-xr-x 4 vicente users 4096
$ ll backup_0801131921/
total 84
drwxr-xr-x 2 vicente users 4096
drwxr-xr-x 7 vicente users 4096
-rw-r--r-- 1 vicente users 71040

http://www.vicente-navarro.com/blog/2008/01/13...
2008-01-13
2008-01-13
2008-01-13
2008-01-13

19:17
19:21
11:48
11:48

backup_0801131917/
backup_0801131921/
dirA/
dirB/

2008-01-13 19:21 ./
2008-01-13 19:21 ../
2008-01-13 19:20 fichero2/

Es importante no usar paths relativos en el parmetro --backup-dir, porque son relativos al


directorio destino. En los ejemplos anteriores, si hubiramos hecho --backupdir=backup_$(date +%y%m%d%H%M), el directorio backup_0801131917 de turno se hubiera creado
dentro del dirB y sera eliminado en el siguiente rsync con --delete.
Actualizacin 15/1/07 (inspirada por los comentarios de MetalAgent):
Tambin podemos hacer backups incrementales con las opciones:
--compare-dest=DIR
--copy-dest=DIR
--link-dest=DIR

also compare received files relative to DIR


... and include copies of unchanged files
hardlink to files in DIR when unchanged

La opcin --compare-dest=DIR hace casi lo mismo que la -b/--backup / --backup-dir=DIR, pero al


revs. En lugar de guardar los cheros viejos en DIR, como hace la -b, la --compare-dest lo
que hace es guardar en el directorio destino slo los cheros que han cambiado respecto
a DIR. Es como un backup incremental pero mientras que con la -b tienes todos los
cheros de la ltima versin en el directorio destino, con la --compare-dest slo tienes en el
directorio destino los cheros que han cambiado desde el ltimo backup.
Como variacin de la --compare-dest, est la --copy-dest=DIR, que hace lo mismo que la
anterior pero adems copia los cheros que no hayan cambiado. Pero ojo!, la ventaja de
esta opcin es que la copia de los cheros que no han cambiado es local, de forma que
en un rsync remoto, todos los cheros que ya estaban en DIR no se tienen que transferir.
La desventaja es que necesita mucho espacio en disco.
Finalmente, la variante ms interesante es la --link-dest=DIR, que hace lo mismo que la
pero sin consumir ms espacio en disco porque usa hard links a los cheros
que ya existen. Una opcin realmente til!

--copy-dest

Incluyendo y excluyendo cheros del backup


La mayora de las veces no querremos hacer backup de un nico directorio y ya est,
sino que querremos hacer backup de una lista determinada de directorios. En esos casos,
o especicamos uno por uno en la lnea de comandos o, mucho mejor, los especicamos
en una lista. Si especicamos los cheros en una lista, nos podemos permitir tener un
script de backup que lance rsync con las opciones deseadas y que no modicaremos
nunca y el chero con la lista de directorios de los que hay que hacer backup que ser lo
que modicaremos. Las opciones son:
--exclude=PATTERN
--exclude-from=FILE

8 of 12

exclude files matching PATTERN


read exclude patterns from FILE

06/10/14 20:06

Lo hice y lo entend | Backups con rsync


--include=PATTERN
--include-from=FILE
--files-from=FILE

http://www.vicente-navarro.com/blog/2008/01/13...

don't exclude files matching PATTERN


read include patterns from FILE
read list of source-file names from FILE

Los patrones que usa rsync no son muy intuitivos, as que lo mejor es leer detenidamente
la seccin que los explica (INCLUDE/EXCLUDE PATTERN RULES) en la pgina de man de rsync, pero
podemos ver un ejemplo que nos aclarar un poco este tema.
Imaginemos que queremos hacer un backup de los directorios /var/log/ y /var/www/.
Podramos usar un comando como:
rsync -av --delete --prune-empty-dirs --include-from=lista_dirs_backup.txt / /mnt/disco/Backup/

en el que el chero
+
+
+
-

lista_dirs_backup.txt

contiene:

*/
/var/www/**
/var/log/**
*

El + */ de la primera lnea especica que todos los directorios pasan el ltro y es


necesario porque aunque especiquemos los directorios que nos interesan en las
siguientes lneas, el propio directorio /var/ y los /var/log/ y /var/www/ no pasara el ltro.
Adems, como esta opcin nos permite pasar todos los directorios pero sin los cheros y
directorios que contienen, tenemos que usar la opcin --prune-empty-dirs para que no
copie directorios vacos.
En la ltima lnea le especicamos con - * que todo lo que en ese punto ya no ha
pasado el ltro, que sea descartado. Los dos asteriscos ( **) indican que todos los cheros
y directorios que hay debajo pasarn el ltro.
Una alternativa sin
involucrados:
+
+
+
+
+
-

--prune-empty-dirs

sera incluir especcamente todos los directorios

/var/
/var/www/
/var/log/
/var/www/**
/var/log/**
*

Pero es evidente que en el caso de tener muchos directorios y con mucha profundidad,
esta forma se puede complicar mucho y es claramente ms sencilla la anterior (aunque
tambin es ms lenta por tener que recorrer todos los directorios del origen).
En versiones de rsync >=2.6.7 tambin existe la posibilidad de poner tres asteriscos ( ***)
para especicar que el propio directorio especicado tambin pasa el ltro,
facilitndonos nuestra labor en el caso de que queramos hacerlo sin + */ y sin --pruneempty-dirs:
+
+
+
-

9 of 12

/var/
/var/www/***
/var/log/***
*

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

Y tambin es importante tener en cuenta si los directorios especicados son relativos o


absolutos. En los ejemplos anteriores, el directorio origen era el raz ( /) y por ello, los
directorios se guardaban con todo el path (/var/log/ y /var/www/) y as los especicbamos
en el chero de include:
$ ll /mnt/disco/Backup/var/
total 16
drwxr-xr-x 4 root root 4096
drwxr-xr-x 3 root root 4096
drwxr-xr-x 14 root root 4096
drwxr-xr-x 3 root root 4096

2007-10-31
2007-12-09
2008-01-13
2007-06-27

21:10
18:19
18:43
20:19

./
../
log/
www/

pero tambin podramos haber decidido hacerlo con referencia a

/var/:

rsync -av --delete --prune-empty-dirs --include-from=lista_dirs_backup.txt /var/ /mnt/disco/Backup/

Con lo que en el chero


<2.6.7):
+
+
+
+
-

lista_dirs_backup.txt

tendramos que poner (suponemos versin

www
log
www/**
log/**
*

Y el resultado sera un backup sin la parte del directorio


$ ll /mnt/disco/Backup/
total 16
drwxr-xr-x 4 root root
drwxrwxrwt 18 root root
drwxr-xr-x 14 root root
drwxr-xr-x 3 root root

4096
4096
4096
4096

2007-10-31
2008-01-13
2008-01-13
2007-06-27

21:10
20:07
18:43
20:19

/var/:

./
../
log/
www/

Pero como regla fcil que siempre funciona, tenemos lo primero que hemos comentado.
Un comando como este:
rsync -av --delete --prune-empty-dirs --include-from=lista_dirs_backup.txt / /mnt/disco/Backup/

con un
+
+
+
+
-

lista_dirs_backup.txt

como este:

*/
/directorio1/**
/directorio2/directorio2A/**
/directorio2/directorio2B/**
*

rsync remoto
Hasta ahora hemos hecho todos los ejemplos en local. Sin embargo, la mxima utilidad
de rsync llega cuando se usa para hacer backups en una mquina remota, de forma que
el backup cumpla mejor su funcin al estar fsicamente en otro sistema.
En la mquina destino es posible usar el propio proceso rsync funcionando como demonio
y escuchando por defecto en el puerto 873 para recibir estas conexiones, pero es mucho

10 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

ms cmodo y fcil hacerlo por SSH, algo para lo que rsync ya est preparado por
defecto.
Para esto es conveniente congurar el cliente y el servidor de SSH involucrados para
entrar de forma transparente usando autenticacin por clave pblica (Autenticacin
trasparente por clave pblica/privada con OpenSSH) para evitar tener que introducir la
contrasea cada vez, aunque no es estrictamente necesario. Una vez que lo tengamos
as (o si optamos por introducir la contrasea manualmente) y veriquemos que
podemos entrar en la otra mquina sin introducir usuario ni contrasea, podemos usar
rsync exactamente igual que si trabajramos con la mquina local, solo que tenemos que
especicar el prejo usuario@maquina: en el origen o en el destino (no en ambos):
$ rsync -av --delete dirA vicente@remoto:/backup/
building file list ... done
dirA/
dirA/fichero1
dirA/fichero2
dirA/dirA1/
dirA/dirA1/fichero3
dirA/dirA2/
dirA/dirA2/fichero4
sent 6540658 bytes received 126 bytes
total size is 6539461 speedup is 1.00

2616313.60 bytes/sec

# rsync -av --delete vicente@remoto:/backup/dirA/ dirC/


receiving file list ... done
created directory dirC
./
fichero1
fichero2
dirA1/
dirA1/fichero3
dirA2/
dirA2/fichero4
sent 126 bytes received 6540665 bytes
total size is 6539461 speedup is 1.00

2616316.40 bytes/sec

Enlaces
rsync FAQ
rsync examples
Ivn Lpez: Rsync vs BackupPc vs Link-Backup
Rsync software for Co-operative Incremental and full Mirroring
rsync synchronizing two le trees
rsync Manual SGML
Easy Automated Snapshot-Style Backups with Linux and Rsync
:wq
Entradas relacionadas

11 of 12

06/10/14 20:06

Lo hice y lo entend | Backups con rsync

http://www.vicente-navarro.com/blog/2008/01/13...

rdidir: Sincronizando directorios entre sistemas distintos sin usar la red (4)
Hosting casero HOWTO (4)
El paso a UTF-8 con Ubuntu Hardy Heron: rsync entre sistemas con distinto juego de
caracteres (4)
Piensas en si un da te roban el porttil? (4)
VPN con OpenSSH (3)
Usando ntfsclone y dd para clonado por red con netcat (3)
Esta entrada fue publicada bajo una licencia CC el 13 enero 2008 a las 22:53 y pertenece
a la categora GNU/Linux, UNIX. Etiquetas: backup, Cygwin, GNU/Linux, OpenSSH, rsync,
Windows. Puedes seguir las respuestas a travs de RSS. No puedes dejar comentarios ni
hacer trackback.

12 of 12

06/10/14 20:06

S-ar putea să vă placă și