Inicio > Gestión de archivos y directorios > rsync

rsync: Sincronización y copia de seguridad de archivos (uso de la opción --include)

rsync es una potente utilidad para sincronizar archivos y directorios de manera eficiente entre sistemas locales y remotos. En particular, el uso de la opción `--include` permite incluir solo archivos o directorios que coincidan con un patrón específico en el destino de la sincronización, lo que lo hace muy útil en escenarios complejos de copia de seguridad y despliegue. Esta guía se centra en el uso básico de rsync y en la aplicación de la opción `--include`.

Descripción general

rsync ahorra ancho de banda de red transfiriendo solo los archivos modificados y permite un control preciso de los archivos/directorios a transferir a través de las opciones `--include` y `--exclude`. `--include` incluye patrones específicos, mientras que `--exclude` excluye patrones específicos. El orden de estas dos opciones es importante.

Características principales

  • Transferencia incremental: Transfiere solo los archivos modificados para mayor eficiencia
  • Sincronización remota: Posibilidad de sincronizar con servidores remotos a través de SSH, etc.
  • Filtrado flexible: Control preciso de los destinos de transferencia con las opciones `--include` y `--exclude`
  • Preservación de atributos: Mantiene varios atributos como permisos de archivo, propiedad, marcas de tiempo, etc.

Opciones principales

Estas son las opciones principales que se usan comúnmente con la opción `--include` entre las diversas opciones de rsync.

Opciones de filtrado

Opciones de comportamiento y eficiencia básicas

Comando generado:

Combina los comandos.

Descripción:

`rsync` Ejecutando el comando.

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

Ejemplos de uso

Aquí hay varios ejemplos de escenarios de sincronización que utilizan la opción `--include` de rsync.

Sincronizar solo archivos con extensiones específicas

rsync -av --include='*.txt' --exclude='*' src/ dest/

Sincroniza solo los archivos con la extensión '.txt' de la carpeta 'src' en el directorio actual a la carpeta 'dest'. Todos los demás archivos serán excluidos.

Sincronizar solo directorios específicos

rsync -av --include='data/***' --exclude='*' src/ dest/

Sincroniza solo el directorio 'data/' y todo su contenido de la carpeta 'src' a la carpeta 'dest'. Todos los demás archivos/directorios serán excluidos.

Sincronizar incluyendo/excluyendo múltiples patrones

rsync -av --exclude='*.log' --include='report/***' --include='*.txt' --exclude='*' src/ dest/

Excluye los archivos '.log' de 'src', e incluye los archivos del directorio 'report/' y los archivos '.txt' en 'dest'. El resto de los archivos serán excluidos.

Probar reglas de inclusión/exclusión con ejecución de prueba

rsync -avn --include='*.txt' --exclude='*' src/ dest/

Verifica cómo se aplican las reglas de filtrado sin realizar una sincronización real. Este comando solo mostrará qué archivos se transferirán.

Obtener solo archivos específicos de un servidor remoto

rsync -av --include='*.conf' --exclude='*' user@remote_host:/remote/path/ ./local/path/

Obtiene solo los archivos '.conf' de '/remote/path/' en el servidor remoto a './local/path/' localmente.

Consejos y precauciones

Aquí tienes algunos consejos y precauciones para usar eficazmente las opciones `--include` y `--exclude` de rsync.

Importancia del orden de las reglas de filtrado

Las opciones `--include` y `--exclude` se procesan en el orden en que aparecen en la línea de comandos. La primera regla que coincida tiene prioridad. Por lo tanto, es común colocar reglas más específicas primero y reglas más generales después.

  • Ejemplo 1: `--include='specific_file' --exclude='*'` (Incluye solo un archivo específico y excluye el resto)
  • Ejemplo 2: `--exclude='*.tmp' --include='*'` (Incluye todos los archivos pero excluye los archivos .tmp)

Comodines y coincidencia de patrones

Se pueden usar varios comodines para la coincidencia de patrones.

  • `*`: Cualquier cadena de caracteres (no cruza límites de directorio)
  • `?`: Un solo carácter
  • `[chars]`: Uno de los caracteres entre corchetes
  • `***`: Cualquier cadena de caracteres que cruza límites de directorio (coincidencia recursiva)

Significado de la barra inclinada (/)

El comportamiento puede variar según si hay una barra inclinada al final del patrón.

  • `dir/`: Se aplica al directorio 'dir' en sí y a todo su contenido.
  • `file_or_dir`: Se aplica tanto a archivos como a directorios con el nombre 'file_or_dir'.

Uso de la ejecución de prueba (`-n`)

Al usar reglas de filtrado complejas, siempre es recomendable usar la opción `-n` o `--dry-run` para verificar los resultados esperados antes de la sincronización real. Esto es esencial para prevenir la eliminación o inclusión no intencionada de archivos.


Comandos de la misma categoría