Verwaltung von Btrfs-Snapshots
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
- Sie können Snapshots auf die gleiche Weise 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
- Es ist auch möglich, einen "ro" (read-only) Snapshot zu erstellen, der nicht verändert werden kann.
- Verwenden Sie dazu den -r Schalter:
Read only snapshot
- btrfs subvolume snapshot -r /mnt/mybtrfs /mnt/mybtrfs/readonly_snapshot1
- Es ist wichtig zu beachten, dass Snapshots selbst nur sehr wenig Speicherplatz benötigen, da sie nur die Änderungen am Dateisystem aufzeichnen.
- Wenn Sie jedoch Dateien im ursprünglichen Dateisystem oder Subvolume ändern oder löschen, kann der Snapshot mehr Speicherplatz benötigen.
Vorbereitung
- Zunächst sollten Sie sicherstellen, dass Sie über einen Snapshot verfügen, den Sie zurückspielen können.
- sudo btrfs subvolume list /mnt/mybtrfs
Gesamter Snapshot zurück spielen
- Angenommen, Sie haben einen Snapshot,vom subvol1, namens snapshot1, den Sie zurückspielen möchten.
- Das erste, was Sie tun müssen, ist, das Original-Subvolume oder Dateisystem zu umbenennen oder zu verschieben. *
- Dies ist notwendig, weil Btrfs nicht erlaubt, einen Snapshot in ein Verzeichnis zurückzuspielen, das bereits Daten
- sudo mv /mnt/mybtrfs/subvol1 /mnt/mybtrfs/subvol1.old
- Jetzt können Sie den Snapshot zurückspielen.
- sudo btrfs subvolume snapshot /mnt/mybtrfs/snapshot1 /mnt/mybtrfs/subvol1
- Dieser Befehl erstellt einen "schreibbaren" Snapshot von snapshot1 und platziert ihn als /mnt/mybtrfs/subvol1.
- Im Wesentlichen haben Sie jetzt das Dateisystem oder Subvolume auf den Zustand zum Zeitpunkt der Erstellung von snapshot1 zurückgesetzt.
Wiederherstellen einzelner Dateien aus einem Btrfs-Snapshot
- Stellen Sie sicher, dass Sie einen Snapshot haben, aus dem Sie Dateien wiederherstellen können.
- sudo btrfs subvolume list /mnt/mybtrfs
- Navigieren Sie zum Snapshot-Verzeichnis.
- Die Dateistruktur Ihres ursprünglichen Dateisystems oder Subvolumes wird widergespiegelt.
- cd /mnt/mybtrfs/snapshot1
- Suchen Sie die Datei, die Sie wiederherstellen möchten.
- Angenommen, die Datei heißt file.txt und befindet sich im Stammverzeichnis des Snapshots.
- ls -l file.txt
Datei an gewünschte Stelle kopieren
- sudo rsync -avzx file.txt /mnt/mybtrfs/subvol1
Erstellen Sie ein Shell-Skript
- 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