Zunächst einmal sollten Sie sich ein wenig über die Include/Exclude-Syntax von rsync informieren. Ich habe das Gefühl, dass das, was Sie tun möchten, besser mit **
erledigt werden kann Globs als *
Kugeln. (**
erweitert sich auf eine beliebige Anzahl von Einträgen, während *
erweitert sich nur auf einen einzigen Eintrag, der möglicherweise mit mehreren Verzeichnissen übereinstimmt Einträge. Die Details sind in man rsync
unter Musterregeln einschließen/ausschließen .)
Wenn Sie jedoch in der Lage sein möchten, das System mit minimalem Aufwand auf einen bekannten Arbeitszustand aus der Sicherung zurückzusetzen, sollten Sie beim Ausschließen von Dateien oder Verzeichnissen vorsichtig sein. Ich verwende selbst rsnapshot und habe eigentlich den umgekehrten Ansatz gewählt:alles außer ein paar sorgfältig ausgewählten Verzeichnissen einschließen.
Meine rsnapshot.conf lautet also tatsächlich (mit Tabulatoren, um den Konfigurationsdatei-Parser von rsnapshot glücklich zu machen):
interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./
und sonst sehr wenig. Ja, es bedeutet, dass ich vielleicht etwas mehr kopiere, als unbedingt erforderlich ist, aber es stellt sicher, dass alles, was nicht als flüchtig gedacht ist, kopiert wird. Da rsnapshot das Hardlink-to-deduplicate-Verhalten von rsync verwendet, entstehen die einzigen wirklichen Kosten dafür während des ersten Laufs; Vorausgesetzt, Sie haben einen (im Vergleich zu Ihrer Gesamtdatensatzgröße) Backup-Zielspeicherort mit angemessener Größe, dauert es danach nur sehr wenig Zeit oder Speicherplatz. Ich schließe den Inhalt von /backup aus, weil ich dort das Backup-Zieldateisystem mounte; ein Nichtausschluss würde dazu führen, dass das Backup in sich selbst kopiert wird. Der Einfachheit halber möchte ich jedoch, wenn ich jemals auf Bare Metal wiederherstellen muss, den Einhängepunkt beibehalten!
In meinem Fall kann ich one_fs 1
auch nicht sinnvoll verwenden; Ich verwende ZFS mit derzeit ~40 Dateisystemen. Diese alle explizit aufzulisten, wäre ein Albtraum für die Wartung und würde die Arbeit mit ZFS-Dateisystemen viel aufwendiger machen, als es sein müsste.
So ziemlich alles, was Sie darüber hinaus ausschließen möchten, hängt sowieso von der Distribution ab, daher ist es praktisch unmöglich, eine allgemeine Antwort zu geben. Allerdings finden Sie wahrscheinlich einige Kandidaten unter /var.
Das meiste, was Sie zu tun versuchen, kann wahrscheinlich einfach durch die Verwendung von one_fs
erreicht werden Einstellung. Legen Sie die Dateisysteme fest, die Sie in Ihre Sicherungen einbeziehen möchten, und verwenden Sie dann diese Einstellung, um den Rest zu ignorieren (proc
, sys
, dev
, etc.). Ich würde /lost+found
einfügen da dieses Verzeichnis immer leer sein sollte, es sei denn, Sie haben ein Backup eines beschädigten Dateisystems erstellt, in diesem Fall möchten Sie wahrscheinlich ein Backup von allem, was fsck
ist erholt. Außerdem .pyc
und .pyo
sollte eigentlich gar nicht erst im Root-Verzeichnis liegen, also würde ich auch diese Zeilen entfernen. /tmp
und /var/tmp
sind etwa die einzigen verbleibenden Pfade auf einem "generischen" System, die Daten enthalten, die zuverlässig von Backups ausgeschlossen werden können. Versuchen Sie also vielleicht so etwas wie:
one_fs 1
exclude /tmp/
exclude /var/tmp/