Introducción
Rsync es una potente utilidad de línea de comandos para sistemas Unix/Linux, que le permite sincronizar y transferir archivos entre dos sistemas diferentes. Una de las principales características de Rsync es la capacidad de excluir archivos y directorios del proceso de sincronización. Esta característica puede ser increíblemente útil para una variedad de tareas, como copias de seguridad, sincronización de código base y administración de datos.
Excluir archivos y directorios con rsync
Para excluir archivos o carpetas específicos al usar el comando rsync
, puede usar la --exclude
o -X
. La opción --exclude
toma una lista separada por comas de patrones (expresiones regulares) que coinciden con los archivos o carpetas que se van a excluir.
Ejemplo:
rsync -av --exclude=pattern1 --exclude=pattern2 source/destination/
En este caso, todos los archivos o carpetas en la ruta de origen que coincidan con "patrón1" o "patrón2" se excluirán de la sincronización.
rsync -av --exclude='pattern1|pattern2' source/destination/
en este caso, se excluirán todos los archivos o carpetas que coincidan con el patrón 1 o el patrón 2.
Además, también puede usar un archivo de texto para especificar reglas de exclusión, usando la --exclude-from
. El archivo debe contener una lista de patrones, uno por línea.
rsync -av --exclude-from=exclude-list.txt source/destination/
Este comando utilizará los patrones especificados en el archivo "exclude-list.txt" para excluir archivos durante la sincronización.
Si desea excluir todos los archivos con la extensión ".log", puede usar el siguiente comando:
rsync -av --exclude='*.log' source/destination/
Excluir todo lo escrito en el archivo de texto
Otra forma de excluir archivos y directorios es usar un archivo separado llamado "excluir archivos". Este archivo contiene una lista de patrones excluidos, uno por línea, y Rsync leerá el archivo y aplicará los patrones especificados en él.
rsync -av --exclude-from='exclude.txt' source/destination/
Aquí el archivo include.txt que contiene todos los patrones de archivos o directorios para excluir
Los patrones en el archivo de exclusión pueden ser un globo de shell (por ejemplo, *.log) o una expresión regular (si la --exclude-from
se reemplaza con --exclude-from-file
).
Incluir archivos específicos y excluir otros
También es posible incluir y excluir archivos al mismo tiempo utilizando la opción --include
seguida del nombre del archivo o directorio que desea incluir y la opción --exclude
para todo lo demás. Por ejemplo, el siguiente comando incluirá todos los archivos con la extensión ".txt" y excluirá todos los demás archivos:
rsync -av --include='*.txt' --exclude='*' source/destination/
Es importante tener en cuenta el orden de las --exclude
--include
y --exclude es significativo Si desea incluir un archivo o directorio específico y luego excluir otros, la opción --include
debe ser la primera.
Excluir archivos grandes
Otra consideración al usar Rsync para excluir archivos y directorios es el rendimiento. La exclusión de archivos o directorios grandes puede ahorrar una cantidad significativa de tiempo y espacio al transferir o sincronizar datos. Por ejemplo, si está haciendo una copia de seguridad, es posible que desee excluir los archivos multimedia grandes o las copias de seguridad.
rsync --ignore-existing --size-range='+100M' -av source/destination/
También hay muchas otras opciones disponibles con rsync que se pueden usar para refinar aún más el proceso de transferencia de archivos. Por ejemplo, puede usar la opción --exclude
para excluir ciertos archivos o directorios de la transferencia, o la opción --dry-run
para ver qué archivos se copiarían sin realizar realmente la transferencia.
Conclusión
En general, la capacidad de excluir archivos y directorios con Rsync es una característica poderosa y esencial que puede mejorar en gran medida la eficiencia, la precisión y la seguridad de sus tareas de respaldo, sincronización y administración de datos. Usando los métodos y las mejores prácticas discutidas en este artículo, puede aprovechar al máximo esta función y asegurarse de que sus comandos Rsync funcionen de la manera más eficiente y efectiva posible.