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.
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/
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.
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/
Hasta aquí el artículo de hoy. Espero que te resulte útil.
Artículos relacionados:


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