Tutoriel Linux

Excluir archivos innecesarios de una copia de seguridad Rsync

Débutant4 min de lecture

Una copia de seguridad de Rsync que de repente ocupa decenas de gigabytes a menudo contiene cachés, archivos temporales o directorios generados por la aplicación. Excluirlos reduce la copia, pero un patrón demasiado amplio también puede hacer que una restauración sea incompleta.

Lo más seguro es escribir una lista de exclusiones, simularla en un pequeño perímetro y luego comparar los datos que realmente deben llegar al destino. Este método funciona tanto en una estación Linux como en un servidor, siempre que se empiece fuera de la única copia de seguridad disponible.

Archivos de caché excluidos antes de una copia de seguridad de Rsync a un disco externo
Los archivos innecesarios se filtran antes de la copia al disco de respaldo.

Preparar una lista de exclusiones legible

Rsync aplica los filtros a las rutas transferidas desde el directorio fuente. Un archivo --exclude-from es más fácil de leer que un comando lleno de patrones. Mantenlo en la configuración de respaldo, con comentarios si varios servicios utilizan la misma regla.

Antes de crear este archivo, busca los directorios relevantes en una copia de trabajo. Un caché puede ser reconstruido, mientras que un directorio que contiene una clave, un certificado o una base local debe, a veces, unirse a una copia de seguridad cifrada separada.

SOURCE=/srv/mi-aplicacion/
DEST=/mnt/backup/mi-aplicacion/

find "$SOURCE" -maxdepth 2 -type d ( -name cache -o -name .cache -o -name .ssh ) -print

cat > /tmp/rsync-exclude.txt <<'EOF'
.cache/
cache/
.ssh/
*.tmp
EOF

sed -n 'l' /tmp/rsync-exclude.txt

El $ añadido por sed -n 'l' confirma los finales de línea. Es útil después de una copia desde Windows o una herramienta que añade caracteres invisibles. El patrón cache/ apunta a directorios llamados cache, no a un archivo con ese nombre.

  • Comienza con los cachés, archivos temporales y salidas de construcción que la aplicación regenera.
  • Evita excluir archivos .pem, bases de datos o directorios de configuración por reflejo.
  • Si una regla debe apuntar solo a la raíz de la fuente, pruébala en un directorio laboratorio antes de añadirla a la copia de seguridad real.

Simular Rsync antes de cualquier copia

La opción -n inicia una simulación. Con -a, Rsync prepara la misma copia recursiva y conserva los atributos de archivo previstos, sin escribir en el destino. --itemize-changes ayuda a revisar los archivos que serían transferidos.

rsync -anv --itemize-changes 
  --exclude-from=/tmp/rsync-exclude.txt 
  "$SOURCE" "$DEST"

En esta salida, los archivos útiles aparecen con su ruta. Los cachés y archivos temporales no deben aparecer aquí. Si un directorio esperado desaparece, retira el patrón responsable antes de la primera copia. No añadas --delete durante este primer control: la opción es útil para un espejo, pero aumenta el riesgo cuando la lista de exclusiones aún no ha sido validada.

El manual de Rsync detalla las reglas de filtrado, incluyendo --exclude y --exclude-from. Para una sincronización más general, la guía Rsync en Linux cubre luego las opciones de archivo y las dos rutas de la copia.

Copiar y luego comparar el perímetro conservado

Después de una simulación coherente, inicia la copia en un destino de prueba. Compara un subdirectorio conservado, por ejemplo, los datos de la aplicación. Comparar toda la fuente sería engañoso ya que las exclusiones crean deliberadamente diferencias.

rsync -a --exclude-from=/tmp/rsync-exclude.txt 
  "$SOURCE" "$DEST"

diff -qr "$SOURCE/data" "$DEST/data"
find "$DEST" -maxdepth 2 ( -name cache -o -name .cache -o -name .ssh ) -print

El comando diff -qr no debe devolver nada para un directorio de datos idéntico. El último find no debe mostrar los directorios excluidos. Si el destino pertenece a otra cuenta, verifica también los permisos y la propiedad antes de declarar la copia de seguridad restaurable.

Cuando una exclusión se vuelve peligrosa

Excluyo gustosamente un caché reconstruido por el servicio, después de una simulación. Mantendría otra estrategia para los secretos: una clave SSH, un certificado TLS o una configuración de conexión puede ser indispensable para el reinicio. Es mejor respaldarlos en un conjunto cifrado con acceso limitado que hacerlos desaparecer de todas las copias.

Este método valida las rutas y el contenido esperado. No prueba que una aplicación reiniciará después de la restauración, ni que el destino siga disponible. Para este segundo nivel de control, la guía BorgBackup y la verificación de una restauración ofrece una buena disciplina: restaurar un perímetro limitado y abrir realmente los datos recuperados.