27Jun

Cómo excluir archivos de Rsync

Rsync es una de las utilidades más útiles para un administrador de servidor, pero sincroniza todo de forma predeterminada, lo que puede ser molesto si la aplicación crea muchos archivos temporales. A continuación, le mostramos cómo excluir archivos cuando usa rsync.

Excluyendo de una lista en un archivo

Este es el método ideal para excluir archivos y carpetas, ya que siempre puede editar la lista y ajustar cosas si es necesario. Aquí está la sintaxis:

rsync --exclude-from = /path/to/ archivo de exclusión /path/to/ fuente /path/to/ dest

Lo difícil con rsync es que necesita usar una ruta relativa cuando está tratando de excluir cosas, porque cuando intentacoinciden con las exclusiones que no utilizará la primera parte de la ruta para el partido. .. es extraño.

Supongamos, por ejemplo, que está intentando hacer una copia de seguridad de /data/web/ y enviarla a otro servidor, por lo que utiliza un comando como rsync -a /data/web/ usuario @ servidor: /backups/data/web/ para hacerlo realidad. .. pero realmente le gustaría omitir la sincronización del /data/web/cache/carpeta. Cuando rsync va a verificar su lista de exclusión para cada elemento que sincroniza, no comprobará /data/web/cache/ ya que su comando rsync original está basado en la carpeta /data/web/.Simplemente marcará "caché /" contra la lista. Por lo tanto, deberá colocar "caché" en la lista, no la ruta completa. Ejemplo:

rsync -a --exclude-from = /data/ exclusiones /data/web/ /backups/

Ahora, para excluir la memoria caché /data/web/ y la temperatura /data/web/ de rsync con este comando, eliminaríamos la parte /data/web/ de la ruta y el archivo de exclusiones /data/ simplemente contendría esto:

cache * temp *

Observará que agregué * en la ruta, para asegurarme de que coincida con todo lo que comienza con "caché" al principio. Puede utilizar este patrón de estrella por razones más útiles si lo desea; digamos que desea excluir todos los archivos. txt para que no se sincronicen. Comenzaría el patrón con la estrella para asegurarse de que siempre coincida, y agregue esto:

*. txt

Eso garantizaría que esos tipos de archivos se omitan durante una sincronización. Es bastante simple más allá de eso.

Excluyendo un solo elemento

Esta técnica es mucho menos útil, pero puede usarla sobre la marcha si es necesario. Si está configurando una secuencia de comandos para usar rsync, que normalmente es, debería tomar el minuto extra para excluir de una lista de archivos en lugar de facilitar el mantenimiento en el futuro. La sintaxis es muy similar:

rsync --exclude = relativa /path/to/ exclusion / source / dest

La misma ruta relativa debe aplicarse aquí como se indicó anteriormente.