restic version
restic 0.6.1 (v0.6.1-126-gb0fb95df)
compilé avec go1.8.3 sur darwin / amd64
restic backup --exclude-file ~/exclude.txt ~
sftp vers LAN
Ignorer les fichiers correspondant au modèle dans exclude.txt
Les fichiers ont été inclus à moins que j'aie radicalement desserré le modèle au point où le modèle est trop ambigu.
En utilisant un fichier d'exclusion comme celui-ci:
.[^.]*
/matt/Applications
/matt/Dropbox
/matt/Downloads
/matt/VirtualBox VMs
*.vmdk
Mon objectif est de sauter les fichiers dotfiles et quelques dossiers spécifiques dans mon répertoire $ HOME (nommé matt
) (mais pas tous les dossiers nommés "Applications" par exemple). Oh, et tous les fichiers .vmdk (ils peuvent être énormes!)
Quand j'ai assoupli les motifs à ceci:
.[^.]*
Applications
Dropbox
Downloads
VirtualBox VMs
*.vmdk
cela a fonctionné (ce qui signifie qu'il a sauté les dossiers) mais c'est trop ambigu, car je ne veux pas ignorer tous les dossiers nommés Téléchargements, par exemple.
Probablement je ne comprends toujours pas correctement les modèles d'exclusion. : smile: J'ai lu # 1005 et je suppose que je ne sais pas si des chemins absolus sont requis pour --exclude ou si des chemins repo-absolus sont requis comme avec --include.
Mise à jour: OK, remplacer /matt/
par $HOME/
semble fonctionner, même si je trouve que l'incohérence entre --exclude et --include est un peu étrange / surprenante.
Habituellement $HOME/blabla
est /home/matt/blabla
ou avez-vous changé quelque chose sur votre système?
Soupir, oui, vous avez absolument raison. Les modèles d'exclusion sont absolus en ce qui concerne ce que vous sauvegardez:
Le modèle /home/matt/*.go
correspond à tous les fichiers Go de votre maison lorsque vous exécutez restic backup /home/matt
. En raison du fonctionnement de l'archiveur (voir # 549, mauvaise décision de conception que nous devons corriger), le préfixe /home/
est supprimé et le composant de chemin de niveau supérieur dans l'instantané est /matt
. Donc, pour la restauration, vous devez utiliser un modèle d'inclusion de /matt/*.go
pour faire correspondre les mêmes fichiers. Je sais que c'est mauvais, je vais éventuellement le corriger :)
Voici donc la liste des fichiers d'exclusion corrigée pour votre cas d'utilisation:
.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk
@ibib Sur mon Mac, mon répertoire personnel est /Users/matt
, mais comme --include
utilise un chemin absolu du référentiel (comme restic ls
montre), j'ai pensé que le chemin absolu approprié serait /matt/...
.
@ fd0 Ah! Cela a plus de sens, merci pour l'explication. Donc --exclude
lorsqu'il est utilisé avec restic backup
est absolu pour le système de fichiers, et --include
(utilisé avec restic restore
) est absolu pour le référentiel. En d'autres termes, les modèles sont absolus par rapport à l'origine des fichiers.
Merci beaucoup pour l'explication. Maintenant, je comprends mieux pourquoi 549 est un problème que vous souhaitez résoudre. :le sourire:
Commentaire le plus utile
Soupir, oui, vous avez absolument raison. Les modèles d'exclusion sont absolus en ce qui concerne ce que vous sauvegardez:
Le modèle
/home/matt/*.go
correspond à tous les fichiers Go de votre maison lorsque vous exécutezrestic backup /home/matt
. En raison du fonctionnement de l'archiveur (voir # 549, mauvaise décision de conception que nous devons corriger), le préfixe/home/
est supprimé et le composant de chemin de niveau supérieur dans l'instantané est/matt
. Donc, pour la restauration, vous devez utiliser un modèle d'inclusion de/matt/*.go
pour faire correspondre les mêmes fichiers. Je sais que c'est mauvais, je vais éventuellement le corriger :)Voici donc la liste des fichiers d'exclusion corrigée pour votre cas d'utilisation: