rsync. Ejemplos de uso 3/3

… continuación de las entradas:

11. No crear nuevos archivos en el destino
Si quieres, puedes actualizar (sincronizar) sólo los archivos existentes en el destino. En el caso de que el origen tenga nuevos archivos, estos no se copiarán al destino. Si quieres usar esta opción usa el parámetro –existing, aquí un ejemplo:

$ rsync -avz –existing /home/ahornero/Music/ /media/disk/Music/

12. Visualizar los cambios entre el origen y el destino
Esta opción es muy útil para ver la diferencia en los archivos o directorios entre origen y destino. Para ello usaremos la opción -i:

$ rsync -avzi /home/ahornero/Music/ /media/disk/Music/

13. Incluir y excluir patrones
Con rsync podemos proporcionar un patrón mediante el cual podemos incluir y excluir archivos o directorios durante la sincronización. Los comandos son sencillos de usar, –include para incluir y –exclude para excluir, seguidos del patrón en sí. El ejemplo:

$ rsync -avz –include ‘j*’ –exclude ‘*’ /home/ahornero/Music/ /media/disk/Music/

En el ejemplo anterior incluimos sólo los archivos y directorios que comienzan por ‘j’ y excluimos el resto de archivos.

14. No transferir ficheros grandes
Con la idea de no transferir archivos mayores a un tamaño determinado podemos indicar a rsync, mediante el comando –max-size, el tamaño máximo de archivos que puede transferir:

$ rsync -avz –max-size=’512K’ /home/ahornero/Music/ /media/disk/Music/

15. Transferir el archivo al completo
Una de las características principales de este programa es que en las transferencias solo se envían los bloques diferentes al destino, en lugar de enviar el archivo completo. Esto resulta muy interesante, pero en ocasiones la sobrecarga que se produce en la CPU no compensa, para ello podemos usar la opción -W (whole), para indicar a rsync que se transfieran los archivos completamente. Esto sólo tiene una contraindicación, y es que si la sincronización se realiza bajo un red de baja velocidad el tiempo que se demora es excesivo, pero en el caso de sincronizar archivos locales resulta ideal. Así:

$ rsync -avzW /home/ahornero/Music/ /media/disk/Music/

Y aquí concluimos la serie de tres entradas dedicadas a rsync. ¿Conoces algún truco o comando interesante?

Author Description

Alberto Hornero Luque

Contínuamente relacionado con el procesamiento de imágenes y el análisis numérico, se encuentra actualmente trabajando como Ingeniero Técnico en el laboratorio de Métodos Cuantitativos de Teledetección del CSIC.  Administrador del portal Linux Hispano y cofundador de Red de Autores y Geometrio, centra sus intereses en tecnologías abiertas, desarrollos en la nube y GNU/Linux. Es un apasionado de la fotografía y puedes seguir sus updates en @ahornero y LinkedIn.

  • Pingback: Bitacoras.com

  • http://ushcompu.com.ar totoloco

    Muy buena data, yo suelo usar ssh y sshfs. Debería migrar a esto entonces :)
    salU

  • Pingback: Tweets that mention rsync. Ejemplos de uso 3/3 | Linux Hispano -- Topsy.com

  • Josep

    Buenos días (o tardes, o noches)

    Me perdonarás la pregunta pero no acabo de encontrar respuesta en toda la red (quizás no sea muy habil buscando).

    He creado un script para realizar una sincronización en modo remoto, he creado y añadido una llave (keygen) y en linea comando me funciona perfectamente, pero al incluirlo en el crontab me genera el siguiente error:

    Permission denied (publickey,keyboard-interactive).
    rsync: connection unexpectedly closed (0 bytes received so far) [sender]
    rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]

    He comprobado que el cron se ejecute con el usuario correcto pero aún así no consigo hacerlo funcionar.

    ¿Alguna idea?

    Gracias (y disculpa de nuevo)