restic version
Restic 0.6.1 (v0.6.1-126-gb0fb95df)
kompiliert mit go1.8.3 auf darwin / amd64
restic backup --exclude-file ~/exclude.txt ~
SFTP zu LAN
Überspringen Sie die Dateien, die dem Muster in exclude.txt entsprechen
Dateien wurden aufgenommen, es sei denn, ich habe das Muster drastisch bis zu einem Punkt gelockert, an dem das Muster zu mehrdeutig ist.
Verwenden einer Ausschlussdatei wie folgt:
.[^.]*
/matt/Applications
/matt/Dropbox
/matt/Downloads
/matt/VirtualBox VMs
*.vmdk
Mein Ziel ist es, Punktedateien und einige bestimmte Ordner in meinem $ HOME-Verzeichnis (mit dem Namen matt
) zu überspringen (aber nicht jeden Ordner mit dem Namen "Anwendungen" zum Beispiel). Oh, und alle .vmdk-Dateien (sie können riesig sein!)
Als ich die Muster dazu entspannte:
.[^.]*
Applications
Dropbox
Downloads
VirtualBox VMs
*.vmdk
Es hat funktioniert (was bedeutet, dass die Ordner übersprungen wurden), aber dies ist zu vieldeutig, da ich beispielsweise nicht alle Ordner mit dem Namen Downloads überspringen möchte.
Wahrscheinlich verstehe ich Ausschlussmuster immer noch nicht richtig. : smile: Ich habe # 1005 gelesen und bin wohl verwirrt, ob für --exclude absolute Pfade erforderlich sind oder ob repo-absolute Pfade wie bei --include erforderlich sind.
Update: Okay, das Ersetzen von /matt/
durch $HOME/
schien zu funktionieren, obwohl ich die Inkonsistenz zwischen --exclude und --include absoluten Pfaden etwas seltsam / überraschend finde.
Normalerweise ist $HOME/blabla
/home/matt/blabla
oder haben Sie etwas an Ihrem System geändert?
Seufz, ja, du hast absolut recht. Die Ausschlussmuster sind absolut in Bezug auf das, was Sie sichern:
Das Muster /home/matt/*.go
stimmt mit allen Go-Dateien in Ihrem Haus überein, wenn Sie restic backup /home/matt
ausführen. Aufgrund der Funktionsweise des Archivierers (siehe # 549, schlechte Designentscheidung, die wir korrigieren müssen) wird das Präfix /home/
gelöscht und die Pfadkomponente der obersten Ebene im Snapshot ist /matt
. Für die Wiederherstellung müssen Sie also ein Include-Muster von /matt/*.go
, um mit denselben Dateien übereinzustimmen. Ich weiß, dass es schlecht ist, ich werde es irgendwann korrigieren :)
Dies ist also die korrigierte Liste der Ausschlussdateien für Ihren Anwendungsfall:
.[^.]*
/home/matt/Applications
/home/matt/Dropbox
/home/matt/Downloads
/home/matt/VirtualBox VMs
*.vmdk
@ibib Auf meinem Mac ist mein Home-Verzeichnis /Users/matt
, aber da --include
einen repository-absoluten Pfad verwendet (wie restic ls
zeigt), habe ich mir den richtigen absoluten Pfad vorgestellt /matt/...
.
@ fd0 Ah! Das macht mehr Sinn, danke für die Erklärung. Bei Verwendung mit restic backup
ist --exclude
für das Dateisystem absolut, und --include
(verwendet mit restic restore
) ist für das Repository absolut. Mit anderen Worten, die Muster sind absolut dahin, woher die Dateien kommen.
Vielen Dank für die Erklärung. Jetzt verstehe ich besser, warum 549 ein Problem ist, das Sie beheben möchten. :Lächeln:
Hilfreichster Kommentar
Seufz, ja, du hast absolut recht. Die Ausschlussmuster sind absolut in Bezug auf das, was Sie sichern:
Das Muster
/home/matt/*.go
stimmt mit allen Go-Dateien in Ihrem Haus überein, wenn Sierestic backup /home/matt
ausführen. Aufgrund der Funktionsweise des Archivierers (siehe # 549, schlechte Designentscheidung, die wir korrigieren müssen) wird das Präfix/home/
gelöscht und die Pfadkomponente der obersten Ebene im Snapshot ist/matt
. Für die Wiederherstellung müssen Sie also ein Include-Muster von/matt/*.go
, um mit denselben Dateien übereinzustimmen. Ich weiß, dass es schlecht ist, ich werde es irgendwann korrigieren :)Dies ist also die korrigierte Liste der Ausschlussdateien für Ihren Anwendungsfall: