Btrfs-Snapshots

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Was ist ein Snapshot

Ein Snapshot ist eine Momentaufnahme eines Btrfs-Dateisystems oder eines Subvolumes.

Ein Snapshot erstellen

  • btrfs subvolume create /mnt/mybtrfs/subvol1
  • btrfs subvolume snapshot /mnt/mybtrfs/subvol1 /mnt/mybtrfs/snapshot1

Anzeigen von Snapshots

Snapshots wie Subvolumes anzeigen und löschen.

  • sudo btrfs subvolume list /mnt/mybtrfs
ID 256 gen 8 top level 5 path subvol1
ID 257 gen 9 top level 5 path snapshot1

Read-only Snapshot

  • btrfs subvolume snapshot -r /mnt/mybtrfs /mnt/mybtrfs/readonly_snapshot1
  • Snapshots benötigen nur wenig Speicherplatz, da sie nur die Änderungen aufzeichnen.

Gesamten Snapshot zurückspielen

  • Vorhandenes Subvolume umbenennen oder verschieben.
  • sudo mv /mnt/mybtrfs/subvol1 /mnt/mybtrfs/subvol1.old
  • Snapshot zurückspielen.
  • sudo btrfs subvolume snapshot /mnt/mybtrfs/snapshot1 /mnt/mybtrfs/subvol1

Wiederherstellen einzelner Dateien aus einem Btrfs-Snapshot

  • Navigieren Sie zum Snapshot-Verzeichnis.
  • cd /mnt/mybtrfs/snapshot1
  • Datei finden und kopieren.
  • sudo rsync -avzx file.txt /mnt/mybtrfs/subvol1

Shell-Skript erstellen

  • sudo nano /usr/local/bin/btrfs_snapshot.sh
#!/bin/bash
SNAPSHOT_NAME=/mnt/mybtrfs/snapshot_subvol1_$(date +%Y.%m.%d_%H:%M:%S)
btrfs subvolume snapshot /mnt/mybtrfs/subvol1 $SNAPSHOT_NAME
  • sudo chmod +x /usr/local/bin/btrfs_snapshot.sh

Crontab eintragen

  • sudo crontab -e
0 2 * * * /usr/local/bin/btrfs_snapshot.sh