restic version
restic 0.6.1 (v0.6.1-126-gb0fb95df)
compilado com go1.8.3 em darwin / amd64
restic backup --exclude-file ~/exclude.txt ~
sftp para LAN
Ignore os arquivos que correspondem ao padrão em exclude.txt
Os arquivos foram incluídos, a menos que eu tenha afrouxado drasticamente o padrão ao ponto em que o padrão é muito ambíguo.
Usando um arquivo de exclusão como este:
.[^.]*
/matt/Applications
/matt/Dropbox
/matt/Downloads
/matt/VirtualBox VMs
*.vmdk
Meu objetivo é ignorar dotfiles e algumas pastas específicas em meu diretório $ HOME (denominado matt
) (mas nem todas as pastas denominadas "Aplicativos", por exemplo). Ah, e todos os arquivos .vmdk (podem ser enormes!)
Quando relaxei os padrões para isto:
.[^.]*
Applications
Dropbox
Downloads
VirtualBox VMs
*.vmdk
funcionou (o que significa que pulou as pastas), mas isso é muito ambíguo, pois não quero pular todas as pastas chamadas Downloads, por exemplo.
Provavelmente eu ainda não estou entendendo os padrões de exclusão corretamente. : smile: Eu li # 1005 e acho que estou confuso se os caminhos absolutos são necessários para --exclude ou se os caminhos repo-absolutos são necessários como com --include.
Atualização: Ok, substituir /matt/
por $HOME/
pareceu funcionar, embora eu ache a inconsistência entre --exclude e --include caminhos absolutos um pouco estranha / surpreendente.
Normalmente $HOME/blabla
é /home/matt/blabla
ou você alterou algo em seu sistema?
Suspiro, sim, você está absolutamente certo. Os padrões de exclusão são absolutos em relação ao que você faz backup:
O padrão /home/matt/*.go
corresponde a todos os arquivos Go em sua casa quando você executa restic backup /home/matt
. Devido à forma como o arquivador funciona (consulte # 549, má decisão de design que precisamos corrigir), o prefixo /home/
é eliminado e o componente do caminho de nível superior no instantâneo é /matt
. Portanto, para restaurar, você precisa usar um padrão de inclusão de /matt/*.go
para corresponder aos mesmos arquivos. Eu sei que é ruim, vou corrigi-lo eventualmente :)
Portanto, esta é a lista de arquivos de exclusão corrigida para seu caso de uso:
.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk
@ibib No meu Mac, meu diretório inicial é /Users/matt
, mas como --include
usa um caminho absoluto de repositório (como restic ls
shows), imaginei que o caminho absoluto adequado seria /matt/...
.
@ fd0 Ah! Isso faz mais sentido, obrigado por explicar. Portanto, --exclude
quando usado com restic backup
é absoluto para o sistema de arquivos, e --include
(usado com restic restore
) é absoluto para o repositório. Em outras palavras, os padrões são absolutos para a origem dos arquivos.
Muito obrigado pela explicação. Agora eu entendo melhor por que 549 é um problema que você deseja corrigir. :sorriso:
Comentários muito úteis
Suspiro, sim, você está absolutamente certo. Os padrões de exclusão são absolutos em relação ao que você faz backup:
O padrão
/home/matt/*.go
corresponde a todos os arquivos Go em sua casa quando você executarestic backup /home/matt
. Devido à forma como o arquivador funciona (consulte # 549, má decisão de design que precisamos corrigir), o prefixo/home/
é eliminado e o componente do caminho de nível superior no instantâneo é/matt
. Portanto, para restaurar, você precisa usar um padrão de inclusão de/matt/*.go
para corresponder aos mesmos arquivos. Eu sei que é ruim, vou corrigi-lo eventualmente :)Portanto, esta é a lista de arquivos de exclusão corrigida para seu caso de uso: