martes, 1 de marzo de 2011

Haciendo copias de seguridad con el comando rsync

Según Wikipedia, rsync es una aplicación de software para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

En modalidad de "Daemon" servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto.

Lanzado bajo la licencia GNU General Public License, rsync es software libre.
Podemos utilizar rsync para hacer copias de seguridad de nuestros ficheros importantes entre dos computadoras o para mantener un repositorio actualizado.

rsync es excelente para mantener folders y ficheros sincronizados entre dos computadoras o en la misma computadora, podemos hacer copias de seguridad de toda la data importante a un disco externo con  rsync.

Copiando ficheros con rsync

De una comptuadora a local a una remota 

$ rsync --progress --partial -avz /folder/to/copy/ user@remote.server:/remote/folder 

Esto copiará todos lo ficheros ubicados en /folder/to/copy/ hacia /remote/folder en el servidor remoto, el folder a copiar en si mismo no será creado en el servidor remoto, por lo que solo su contenido será copiado, si queremos que el folder sea creado y luego su contenido copiado debemos utilizar rsync de la siguiente manera.

$ rsync --progress --partial -avz /folder/to/copy user@remote.server:/remote/folder 

Notemos que la barra "/" al final de copy es lo que hace la dieferencia. Las demás opciones son:

  • progress: nos mostrará el porcentaje de ficheros copiados.
  • partial: le dice a rsync que mantenga el fichero de forma parcial y luego haga su copia, esto le da más rapidez.
  • a: Archive, es una forma rápida de decirle que es una copia recursiva y que queremos que todo sea copiado.
  • v: Verbose, le indica a rsync que de información en pantalla sobre cada transacción.
  • z: Compress, comprime los ficheros para utilizar menor ancho de banda, así son copiados más rápidamente.

De una computadora remota a una local

$ rsync --progress --partial -avz user@remote.server:/folder/to/copy/ /local/folder

Si deseamos copiar ficheros específicos, lo incluimos en el path.

$ rsync --progress --partial -v /path/to/file/file.ext user@remote.server:/remote/folder/ 

De un folder a otro en la misma computadra

$ rsync -av /source/folder /destination/folder 


Sincronizar dos folders con rsync

De una compuadora local a una remota

$ rsync -avz --delete /source/folder user@remote.server:/destination/folder 

De una computadora remota a una local

$ rsync -avz --delete user@remote.server:/source/folder /destination/folder 

De un folder a otro en el mismo servidor

$ rsync -av --delete /source/folder /destination/folder 

Esta última es genial para hacer copias de seguridad de ficheros a un dispositivo externo

$ rsync -av --delete /home/guillermo/ /media/disk/backup-guillermo/ 

La opción --delete borrará todos los ficheros en el folder destino, que han sido borrados en el folder origen, lo que los hacer estar sincronizados.

Por último, si necesitamos limitar el ancho de banda que utiliza una conexión rsync, le damos la opción --bwlimit=KBPS y le indicamos a rsync cuanto ancho de banda en Kbytes por segundo puede tomarse.


3 comentarios:

  1. Estupendo para hacer copias de seguridad a mi disco externo... gracias...

    http://juancarlosmolinos.net

    ResponderEliminar
  2. Te agadezco que te hallas tomado el tiempo en compartir esto, saludos.

    http://eralinux.wordpress.com/

    ResponderEliminar