Inicio > Compresión/Archivado > rsync

Dominio completo del comando rsync

Esta es una guía sobre el comando `rsync` para sincronizar y respaldar archivos y directorios de manera eficiente en Linux. Puede realizar copias incrementales y sincronizaciones de forma segura y rápida entre sistemas locales y remotos.

Opciones principales

Combinando varias opciones del comando `rsync`, puede configurar tareas de sincronización y respaldo de archivos.

1. Sincronización básica

2. Modos y opciones de transferencia

Comando generado:

Combina los comandos.

Descripción:

`rsync` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Cómo funciona rsync

`rsync` utiliza el algoritmo de 'codificación delta' para transferir solo las partes modificadas de los archivos, utilizando eficientemente el ancho de banda de la red. Esto lo hace muy rápido y eficiente al sincronizar archivos grandes o muchos archivos.

Características principales de rsync

Estas son las funciones clave que diferencian `rsync` de otras herramientas de copia.

  • Transferencia delta (Delta Transfer): Identifica y transfiere solo las diferencias entre los archivos de origen y destino. Maximiza la eficiencia al transferir solo los bloques modificados en lugar de volver a copiar todo el archivo.
  • Respaldo incremental (Incremental Backup): Copia solo los archivos que han cambiado desde el último respaldo, ahorrando tiempo y espacio al no tener que realizar un respaldo completo cada vez.
  • Sincronización remota: Puede transferir archivos a través de canales cifrados utilizando varios shells remotos, incluida SSH, lo que mejora la seguridad.
  • Conservación de atributos de archivo: Al usar el modo de archivo (`-a`), conserva todos los atributos de los archivos, incluidos permisos, propietarios, grupos, marcas de tiempo y enlaces simbólicos.

Importancia de la barra final (Trailing Slash) en la ruta

`rsync` es muy importante si se adjunta una barra (`/`) al final de la ruta de origen. - `source/`: Copia el **contenido** de la carpeta `source`. (Ejemplo: similar a `cp source/* dest/`) - `source`: Copia la **carpeta** `source`. (Ejemplo: similar a `cp -r source dest/`) No entender esta diferencia puede resultar en resultados inesperados.

Ejemplos de uso

Utilice ejemplos prácticos del comando `rsync` para establecer estrategias de sincronización y respaldo de archivos.

Sincronización de directorios locales (modo de archivo)

rsync -av /path/to/source_dir/ /path/to/destination_dir/

Sincroniza el contenido de `source_dir` con `destination_dir`. Mantiene todos los atributos, incluyendo permisos y tiempos. Los archivos que no están en `source_dir` no se eliminarán de `destination_dir`.

Espejeo de directorios en un servidor remoto (respaldo)

rsync -avz --delete --progress /local/my_data/ user@remote_host:/remote/backup/

Espejea el contenido del directorio `my_data` local en el directorio `/backup/` del servidor remoto. Los archivos que no están en la fuente también se eliminarán en el destino. Utiliza compresión y muestra el progreso.

Obtener solo archivos específicos del servidor remoto

rsync -avz --include='*.log' --exclude='*' user@remote_host:/var/log/ /tmp/logs/

Obtiene solo los archivos `.log` del directorio `/var/log/` del servidor remoto al directorio local `/tmp/logs/`.

Verificar cambios sin ejecución real

rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/

Muestra de antemano qué cambios se realizarían sin transferir o eliminar realmente archivos. Siempre es recomendable usar esto antes de una sincronización importante.

Sincronización usando un puerto SSH diferente

rsync -avz -e "ssh -p 2222" /local/src/ user@remote_host:/remote/dest/

Sincroniza archivos con el servidor remoto usando el puerto 2222 en lugar del puerto SSH predeterminado (22).


Comandos de la misma categoría