Restic: Excluir patrones que no se aplican

Creado en 20 jun. 2017  ·  4Comentarios  ·  Fuente: restic/restic

Salida de restic version

restic 0.6.1 (v0.6.1-126-gb0fb95df)
compilado con go1.8.3 en darwin / amd64

¿Cómo empezaste exactamente a estar inquieto? (Incluya la línea de comando completa)

restic backup --exclude-file ~/exclude.txt ~

¿Qué backend / servidor / servicio usaste?

sftp a LAN

Comportamiento esperado

Omita los archivos que coincidan con el patrón en exclude.txt

Comportamiento real

Se incluyeron archivos a menos que aflojara drásticamente el patrón hasta el punto en que el patrón sea demasiado ambiguo.

Pasos para reproducir el comportamiento

Usando un archivo de exclusión como este:

.[^.]*
/matt/Applications
/matt/Dropbox
/matt/Downloads
/matt/VirtualBox VMs
*.vmdk

Mi objetivo es omitir los archivos de puntos y algunas carpetas específicas en mi directorio $ HOME (llamado matt ) (pero no todas las carpetas llamadas "Aplicaciones", por ejemplo). Ah, y cualquier archivo .vmdk (¡pueden ser enormes!)

Cuando relajé los patrones a esto:

.[^.]*
Applications
Dropbox
Downloads
VirtualBox VMs
*.vmdk

funcionó (lo que significa que omitió las carpetas) pero esto es demasiado ambiguo, ya que no quiero omitir todas las carpetas llamadas Descargas, por ejemplo.

¿Tiene alguna idea de qué pudo haber causado esto?

Probablemente todavía no entiendo correctamente los patrones de exclusión. : smile: Leí # 1005 y creo que estoy confundido si se requieren rutas absolutas para --exclude o si se requieren rutas repo-absolutas como con --include.

documentation bug

Comentario más útil

Suspiro, sí, tienes toda la razón. Los patrones de exclusión son absolutos con respecto a lo que respalda:
El patrón /home/matt/*.go coincide con todos los archivos Go de su hogar cuando ejecuta restic backup /home/matt . Debido a la forma en que funciona el archivador (ver # 549, mala decisión de diseño que debemos corregir), el prefijo /home/ se elimina y el componente de ruta de nivel superior en la instantánea es /matt . Entonces, para restaurar, necesitaría usar un patrón de inclusión de /matt/*.go para hacer coincidir los mismos archivos. Sé que está mal, lo corregiré eventualmente :)

Entonces, esta es la lista de archivos de exclusión corregida para su caso de uso:

.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk

Todos 4 comentarios

Actualización: De acuerdo, reemplazar /matt/ con $HOME/ pareció funcionar, aunque encuentro la inconsistencia entre --exclude e --include rutas absolutas un poco extraña / sorprendente.

Por lo general, $HOME/blabla es /home/matt/blabla o ¿cambió algo en su sistema?

Suspiro, sí, tienes toda la razón. Los patrones de exclusión son absolutos con respecto a lo que respalda:
El patrón /home/matt/*.go coincide con todos los archivos Go de su hogar cuando ejecuta restic backup /home/matt . Debido a la forma en que funciona el archivador (ver # 549, mala decisión de diseño que debemos corregir), el prefijo /home/ se elimina y el componente de ruta de nivel superior en la instantánea es /matt . Entonces, para restaurar, necesitaría usar un patrón de inclusión de /matt/*.go para hacer coincidir los mismos archivos. Sé que está mal, lo corregiré eventualmente :)

Entonces, esta es la lista de archivos de exclusión corregida para su caso de uso:

.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk

@ibib En mi Mac, mi directorio de inicio es /Users/matt , pero como --include usa una ruta absoluta de repositorio (como restic ls shows), pensé que la ruta absoluta adecuada sería /matt/... .

@ fd0 ¡Ah! Eso tiene más sentido, gracias por explicarme. Entonces --exclude cuando se usa con restic backup es absoluto para el sistema de archivos, y --include (usado con restic restore ) es absoluto para el repositorio. En otras palabras, los patrones son absolutos de dónde provienen los archivos.

Muchas gracias por la explicación. Ahora entiendo mejor por qué 549 es un problema que desea solucionar. :sonrisa:

¿Fue útil esta página
0 / 5 - 0 calificaciones