restic, prune und unterschiedliche Pfade

Verwendet man restic für die Datensicherung und räumt regelmäßig mit “forget” und “–prune” auf, kann es dennoch passieren, das alte Daten zurückbleiben.

So geschehen bei einer Installation als sich die Backup-Quelle geändert hat. Folgender Befehl löschte zwar fleißig alte Snapshots, allerdings nur die mit dem aktuellen Pfad:

restic forget --keep-last 7 --prune

Schaute man mit

restic snapshots

fanden sich jede Menge teils sehr alte Snapshots. Anbei ein Beispiel (Auszug):

ID       Time                Host Reasons       Paths
--------------------------------------------------------
01dc5739 2023-05-16 06:14:53 hv02 last snapshot D:\Daten
3c0f9753 2024-05-17 05:01:35 hv02 last snapshot E:\Daten
...

Die erste Zeile zeigt einen alten Snapshot. Die Daten sind in beiden Pfaden die Gleichen, allerdings wurde irgendwann der Laufwerksbuchstabe geändert und obwohl der obige Befehl täglich ausgeführt wird blieben dieser und andere alte Snapshots zurück.

Die alten Snapshots wurden dann mit

restic forget <ID>

entfernt. Bei einem weiteren “prune”-Durchlauf wurden dann gut 1 TB an Speicherplatz auf dem Backup-Ziel bzw. im Repository wieder frei.

1 Kommentar

  1. Axel Berbalk

    Hallo Andy,

    ist das nicht relativ klar, dass das so passiert. Schließlich verwendest du “forget” mit einer policy und dann werden alle snapshots nach “host name” und “paths” gruppiert. Wenn man das nicht will muss man beim forget-command “–group-by ”” angeben (LEER).

    Siehe auch hier: https://restic.readthedocs.io/en/stable/060_forget.html#removing-snapshots-according-to-a-policy

    Dort steht:
    When forget is run with a policy, restic first loads the list of all snapshots and groups them by their host name and paths. The grouping options can be set with –group-by, e.g. using –group-by paths,tags to instead group snapshots by paths and tags. The policy is then applied to each group of snapshots individually. This is a safety feature to prevent accidental removal of unrelated backup sets. To disable grouping and apply the policy to all snapshots regardless of their host, paths and tags, use –group-by ” (that is, an empty value to –group-by). Note that one would normally set the –group-by option for the backup command to the same value.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑