Verwaltung von Btrfs-Snapshots: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 17: Zeile 17:
 
;Es ist wichtig zu beachten, dass Snapshots selbst nur sehr wenig Speicherplatz benötigen, da sie nur die Änderungen am Dateisystem aufzeichnen.
 
;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.
 
*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
 +
<syntaxhighlight lang=bash>
 +
#!/bin/bash
 +
SNAPSHOT_NAME=/mnt/mybtrfs/snapshot_subvol1_$(date +%Y.%m.%d_%H:%M:%S)
 +
btrfs subvolume snapshot /mnt/mybtrfs/subvol1 $SNAPSHOT_NAME
  
 +
</syntaxhighlight>
 +
*sudo chmod +x /usr/local/bin/btrfs_snapshot.sh
  
*[[Brtfs Snapshot zurückspielen]]
+
=Crontab eintragen=
*[[Brtfs Snapshot Cronjob]]
+
*sudo crontab -e
 +
0 2 * * * /usr/local/bin/btrfs_snapshot.sh

Aktuelle Version vom 9. Juni 2024, 15:51 Uhr

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