restic version
restic 0.6.1 (v0.6.1-126-gb0fb95df)
compilado con go1.8.3 en darwin / amd64
restic backup --exclude-file ~/exclude.txt ~
sftp a LAN
Omita los archivos que coincidan con el patrón en exclude.txt
Se incluyeron archivos a menos que aflojara drásticamente el patrón hasta el punto en que el patrón sea demasiado ambiguo.
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.
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.
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:
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 ejecutarestic 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: