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.