Categorías: Tutoriales

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?

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • 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)

Entradas recientes

432 CVEs

5 días hace

Anti-IA

2 semanas hace

Memoria

3 semanas hace

Mal uso

4 semanas hace

Precio de la RAM

1 mes hace

AUR

1 mes hace