Cómo hacer copias espejo locales de una forma sencilla con rsync

rsync es una pequeña utilidad, muy fácil de configurar, que permite crear una copia espejo de una serie de datos entre dos ubicaciones diferentes.

Cuando se produce un cambio en alguno de los archivos originales, rsync no transfiere todo el archivo, como haría, por ejemplo, una sesión FTP, sino que transmite sólo las partes que han cambiado en cada archivo. Además, los datos se envían comprimidos y, si es necesario, cifrados con SSH.

Puede ser muy versátil como herramienta de mirroring o incluso de copia de seguridad. Muchos webmasters lo utilizan para sincronizar la versión local y la versión publicada de sus sitios web, pero puede ser útil, incluso, para mantener tus archivos importantes duplicados en un disco duro externo.   

Instalación de rsync

rsync está incluido en los repositorios de la mayoría de las distribuciones GNU/LInux y, por supuesto, está incluido en los de Ubuntu. Por lo tanto, su instalación será tan sencilla como abrir una ventana de Consola (Aplicaciones > Accesorios > Terminal) y ejecutar el siguiente comando:

sudo aptitude install rsync

Uso básico

La forma más sencilla de utilizar rsync es para sincronizar los archivos de dos carpetas locales, que pueden estar en diferentes dispositivos. Para este caso, puedes utilizar la siguiente sintaxis:

rsync -avz "/home/usuario/Mis fotos" /media/PENDRIVE/

donde…

  • -avz indica que en la copia se mantengan los enlaces, dispositivos, atributos, permisos, propietarios, etc. de los archivos originales. Además, hará un recorrido recursivo del origen, creando en el destino las carpetas que fuesen necesarias y se utilizará compresión para reducir el tamaño de los archivos transferidos.
  • “/home/usuario/Mis fotos” es la ubicación de origen de los datos. Se incluyen comillas porque contiene espacios en blanco.
  • /media/PENDRIVE/ indica el destino. Observa que no se ha incluido el nombre de la carpeta destino. Si existe una con el mismo nombre que la original, se actualizará. Si no, se creará una nueva.

Figura 1

Salida del comando rsync

En el caso de que la transferencia de archivos sea local, rsync opta por no realizar una copia incremental, estimando que es más costosa que la transferencia del archivo completo. si, a pesar de todo, quieres forzar este tipo de copia, puedes añadir la opción –no-whole-file:

rsync -avz --no-whole-file "/home/usuario/Mis fotos" /media/PENDRIVE/

Figura 2

Forzando la copia incremental

Un detalle a tener en cuenta es que rsync no elimina del destino los archivos que se crearon en una copia anterior y que ahora han desaparecido del origen. Si quieres que esto ocurra, deberás incluir la opción –delete.

rsync -avz --delete "/home/usuario/Mis fotos" /media/PENDRIVE/

Cuidado con esta opción, porque un error en el nombre del directorio de destino podría ocasionar una pérdida de datos irreparable.

Figura 3

Eliminar archivos

Una opción más, que te puede evitar más de un sobresalto es -u. Su función es impedir que se sobrescriban los archivos que sean más actuales en el destino que en el origen:

rsync -avzu "/home/usuario/Mis fotos" /media/PENDRIVE/

Por último, es importante que conozcas –dry-run. Esta opción te permite probar un comando sin que realmente se lleve a cabo el proceso. Así, podrás comprobar que todo  funciona correctamente antes de realizar una operación que resulte potencialmente peligrosa.

rsync -avzu --dry-run "/home/usuario/Mis fotos" /media/PENDRIVE/

Figura 4

Ejecución de prueba

Hasta aquí el artículo de hoy. Espero que te resulte útil.

Artículos relacionados:

2 Responses to “Cómo hacer copias espejo locales de una forma sencilla con rsync”


  1. 1 Jordi Martes, 9 febrero 2010 a las 4:49 pm

    Hola, pues estaba buscando precisamente esto, y antes de meter la gamba quería hacerte una pregunta.

    Tengo un disco duro externo en el que suelo copiar mas o menos lo que tengo en una particion de mi pc, pero hace tiempo que no e copiado nada, ahora e metido en este disco duro una copia de todos los datos de otro portatil del que dispongo. Por lo tanto tengo un disco duro con la copia del portatil+algunas cosas de la particion de mi PC.

    Entonces lo que necesito es sincronizar el disco duro externo con la partición del pc y tanto los archivos nuevos del disco duro se copien al pc como que los archivos nuevos del pc se copien al disco duro.

    Entonces ¿me valdría usando estos comando?

    rsync -avzu /media/particionpc /media/discoexterno
    rsync -avzu /media/discoexterno /media/particionpc

    Gracias y un saludo


  1. 1 Grsync: un entorno gráfico para rsync « Slice of Linux Trackback en Miércoles, 20 enero 2010 a las 10:32 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




Síguenos en Twitter

 

Sitios amigos:

Si has leído nuestro Acerca de, sabes que no publicamos ningún artículo práctico que no hayamos probado. Aún así, no podemos garantizar que en tu sistema funcione como en el nuestro.

Esta página no es de soporte. Compartimos lo que sabemos, pero si resolviésemos todas las dudas que recibimos, no podríamos hacer artículos nuevos. Por eso, si alguien plantea un problema, y sabes la respuesta, siéntete libre para comentarla.

Si tienes una duda y no obtienes respuesta, puedes recurrir a sitios específicos como ubuntu-es.org o Linux Q.

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.


A %d blogueros les gusta esto: