So verwenden Sie BTRFS -Schnappschüsse

So verwenden Sie BTRFS -Schnappschüsse
Das BTRFS-Dateisystem verfügt. Sie können ein Subvolume in Ihrem BTRFS -Dateisystem erstellen und Schnappschüsse der Dateien/Verzeichnisse in diesem Subvolume machen. Wenn Sie einen Schnappschuss eines Subvolume aufnehmen. Sie können alle Dateien/Verzeichnisse des Subvolume aus dem Snapshot wiederherstellen, falls Sie es benötigen.

Die Snapshot-Funktion des BTRFS-Dateisystems verwendet das Copy-on-Write-Prinzip (Cow). Daher benötigt es nicht viel Speicherplatz und Sie können Schnappschüsse eines Subvolume sofort machen.

Das BTRFS -Dateisystem unterstützt 2 Arten von Schnappschüssen.

  1. Beschreibbare Schnappschüsse: Wenn Sie einen beschreibbaren Schnappschuss aufnehmen, können Sie später die Snapshot -Dateien/Verzeichnisse ändern. Dies ist der Standard -Snapshot -Typ des BTRFS -Dateisystems.
  2. Schreibgeschützte Schnappschüsse: Wenn Sie einen Snapshot nur schreibgeschützt machen, können Sie die Dateien/Verzeichnisse dieses Snapshots später nicht ändern.

In diesem Artikel werden Ihnen angezeigt. Ich werde Ihnen auch zeigen, wie Sie einen beschreibbaren Snapshot aktualisieren und Dateien von einem Snapshot wiederherstellen. Ich werde Ihnen zeigen, wie Sie auch einen Schnappschuss entfernen. Also lasst uns anfangen.

Voraussetzungen

Um die Beispiele dieses Artikels auszuprobieren,

  • Sie müssen das BTRFS -Dateisystem auf Ihrem Computer installieren lassen.
  • Sie müssen eine Festplatte oder SSD mit mindestens 1 freier Partition (einer beliebigen Größe) haben.

Ich habe eine 20 -GB -Festplatte SDB Auf meiner Ubuntu -Maschine. Ich habe 2 Partitionen erstellt SDB1 Und SDB2 auf dieser Festplatte. Ich werde die Partition verwenden SDB1 In diesem Artikel.

$ sudo lsblk -e7

Ihre Festplatte oder SSD hat möglicherweise einen anderen Namen als meine, ebenso wie die Partitionen. Stellen Sie also sicher, dass Sie sie von nun an durch Ihre ersetzen.

Wenn Sie Unterstützung bei der Installation des BTRFS -Dateisystems auf Ubuntu benötigen, überprüfen Sie meinen Artikel Installieren und verwenden Sie BTRFS auf Ubuntu 20.04 LTS.

Wenn Sie Unterstützung bei der Installation des BTRFS -Dateisystems auf Fedora benötigen, überprüfen Sie meinen Artikel Installieren und verwenden Sie BTRFS auf Fedora 33.

Erstellen eines BTRFS -Dateisystems

Um mit BTRFS -Subvolumes zu experimentieren, müssen Sie ein BTRFS -Dateisystem erstellen.

So erstellen Sie ein BTRFS -Dateisystem mit dem Etikett Daten auf der SDB1 Partition, den folgenden Befehl ausführen:

$ sudo mkfs.BTRFS -L -Daten /Dev /SDB1

Ein BTRFS -Dateisystem sollte erstellt werden.

Erstellen Sie ein Verzeichnis /Daten mit dem folgenden Befehl:

$ sudo mkdir -v /Daten

So montieren Sie das auf der erstellte BTRFS -Dateisystem SDB1 Partition in der /Daten Verzeichnis, führen Sie den folgenden Befehl aus:

$ sudo montage /dev /sdb1 /Daten

Das BTRFS -Dateisystem sollte montiert werden, wie Sie im Screenshot unten sehen können.

$ df -h /Daten

Vorbereitung des BTRFS -Dateisystems für Schnappschüsse

In BTRFS können Sie nur Schnappschüsse von BTRFS -Subvolumes machen. Das Hauptwurzel eines BTRFS -Dateisystemsystems ist ebenfalls ein Subvolumen. Sie können also die Sicherung des gesamten BTRFS -Dateisystems sowie bestimmte Subvolumes übernehmen.

In diesem Abschnitt wird ein BTRFS -Subvolumen erstellt /Daten/Projekte/Web1 und erstellen Sie die erforderlichen Dateien für die nächsten Abschnitte dieses Artikels unten. Ich werde auch ein Verzeichnis erstellen, in dem Sie Ihre Schnappschüsse behalten können. In den nächsten Abschnitten zeige ich Ihnen, wie Sie Schnappschüsse (schreibbar und schreibgeschützt) machen, einen beschreibbaren Schnappschuss aktualisieren und Dateien aus dem Snapshot wiederherstellen. Also lasst uns anfangen.

Erstellen Sie zunächst ein neues Verzeichnis /Daten/Projekte folgendermaßen:

$ sudo mkdir -v /Daten /Projekte

Erstellen Sie ein neues Subvolumen Web1 im /Daten/Projekte Verzeichnis wie folgt:

$ sudo btrfs subvolume create/data/projects/web1

Erstellen Sie eine neue Datei Index.html im /Daten/Projekte/Web1 Subvolumen wie folgt:

$ sudo nano/data/projects/web1/index.html

Geben Sie die folgenden Codes -Zeilen in der ein Index.html Datei.




Demo -Website



Hallo Welt 4



Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Index.html Datei.

Erstellen Sie eine neue Datei Stil.CSS im /Daten/Projekte/Web1 Subvolumen wie folgt:

$ sudo nano/data/projects/web1/style.CSS

Geben Sie die folgenden Codes -Zeilen in der ein Stil.CSS Datei.

H1
Farbe grün;

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Stil.CSS Datei.

Jetzt die /Daten/Projekte/Web1 Subvolume hat das Index.html Und Stil.CSS Datei.

$ ls -lh/Daten/Projekte/Web1

Ich möchte alle Schnappschüsse dieses BTRFS -Dateisystems in der /Daten/.Schnappschüsse Verzeichnis.

Erstellen die /Daten/.Schnappschüsse Verzeichnis mit dem folgenden Befehl:

$ sudo mkdir -v /data /.Schnappschüsse

Schnappschüsse aus einem Subvolumen machen

Einen Schnappschuss von der machen /Daten/Projekte/Web1 Subvolumen in die /Daten/.Snapshots/Web1-2020-12-25 Verzeichnis (wird automatisch erstellt) Führen Sie den folgenden Befehl aus:

$ sudo btrfs subvolume snapshot/data/projects/web1/data/.Snapshots/Web1-2020-12-25

Ein Schnappschuss der /Daten/Projekte/Web1 Verzeichnis sollte auf dem erstellt werden /Daten/.Snapshots/Web1-2020-12-25 Verzeichnis.

Wie Sie im Screenshot unten sehen können, ist ein neues Subvolumen .Snapshots/Web1-2020-12-25 geschaffen. Ein Schnappschuss ist eigentlich ein Subvolumen.

$ sudo btrfs subvolume liste /Daten

Weitere Informationen zu dem Snapshot, den Sie in der erstellt haben /Daten/.Snapshots/Web1-2020-12-25 Verzeichnis wie folgt:

$ sudo btrfs subvolume show /daten /.Snapshots/Web1-2020-12-25

Wie Sie sehen können, alle Dateien, die sich in der befinden /Daten/Projekte/Web1 Subvolume sind in der /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

$ tree -a /Daten

Wiederherstellen von Dateien aus Schnappschüssen

In diesem Abschnitt werde ich Ihnen zeigen, wie Sie Dateien aus den BTRFS -Snapshots wiederherstellen können.

Zuerst werde ich Ihnen zeigen, wie Sie eine einzige Datei aus dem Snapshot wiederherstellen können.

Öffne das /Daten/Projekte/Web1/Index.html Datei mit dem Nano -Texteditor wie folgt:

$ sudo nano/data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor.

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die Datei zu speichern.

Wie Sie sehen können, die Haupt Index.html Datei unterscheidet sich von der Index.html Datei im Snapshot.

$ CAT/Daten/Projekte/Web1/Index.html
$ cat /data /.Snapshots/Web1-2020-12-25/Index.html

Wir haben die Änderungen an der Hauptsache vorgenommen Index.html Die Datei sind unerwünscht und wir möchten die wiederherstellen Index.html Datei aus dem Schnappschuss.

Sie können die wiederherstellen Index.html Datei aus dem Snapshot wie folgt:

$ sudo cp -v /data /.Snapshots/Web1-2020-12-25/Index.HTML/Data/Projects/Web1/Index.html

Wie Sie sehen können, die Index.html Die Datei wird aus dem Snapshot wiederhergestellt.

$ CAT/Daten/Projekte/Web1/Index.html
$ cat /data /.Snapshots/Web1-2020-12-25/Index.html

Lassen Sie uns nun sehen, wie Sie alle Dateien/Verzeichnisse aus dem Snapshot wiederherstellen können.

Entfernen Sie alle Dateien aus dem /Daten/Projekte/Web1 Snapshot wie folgt:

$ sudo rm -rv/data/projects/web1/*

Führen Sie den folgenden Befehl aus, um alle Dateien/Verzeichnisse aus dem Snapshot wiederherzustellen:

$ sudo rsync -avz /data /.Snapshots/Web1-2020-12-25//Daten/Projekte/Web1/

Wie Sie sehen können, werden die Dateien/Verzeichnisse aus dem Snapshot wiederhergestellt.

$ ls -lh/Daten/Projekte/Web1

Lassen Sie uns schließlich sehen, wie Sie Dateien/Verzeichnisse aus dem Snapshot im Spiegelmodus wiederherstellen können. Im Spiegelmodus sind die Dateien/Verzeichnisse des Subvolume wie im Snapshot übereinstimmend. Wenn es im Subvolume Dateien/Verzeichnisse gibt, die im Snapshot nicht verfügbar sind, werden sie entfernt.

Erstellen wir eine neue Datei im Subvolume, um den Dateibaum vom Snapshot zu unterscheiden.

Ein ... kreieren Liesmich.txt Datei in der /Daten/Projekte/Web1 Subvolumen wie folgt:

$ echo "Hello World 5" | sudo tee/data/projects/web1/readme.txt

Wie Sie sehen können, der Dateibaum der Datei der /Daten/Projekte/Web1 Subvolume unterscheidet sich von der /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

$ tree -a /Daten

So restaurieren Sie die Dateien/Verzeichnisse aus dem /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss zum /Daten/Projekte/Web1 Subvolume im Spiegelmodus ausführen, den folgenden Befehl ausführen:

$ sudo rsync -avz -delete /data /.Snapshots/Web1-2020-12-25//Daten/Projekte/Web1/

Alle Dateien/Verzeichnisse der /Daten/Projekte/Web1 Subvolume sollte (im Spiegelmodus) aus dem wiederhergestellt werden /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

Der Dateibaum der /Daten/Projekte/Web1 Subvolumen und die /Daten/.Snapshots/Web1-2020-12-25 Snapshot sollte der gleiche sein.

Wie Sie sehen können, der Index.HTML -Datei und Stil.Die CSS -Dateiinhalte sind in der gleich /Daten/Projekte/Web1 Subvolumen und die /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

Inhalt des Index.html Und Stil.CSS Datei in der /Daten/Projekte/Web1 Subvolumen.

$ CAT/Daten/Projekte/Web1/Index.html
$ CAT/Daten/Projekte/Web1/Stil.CSS

Inhalt des Index.html Und Stil.CSS Datei in der /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

$ CAT/Daten/Projekte/Web1/Index.html
$ CAT/Daten/Projekte/Web1/Stil.CSS

Aktualisieren eines Schnappschusss

Standardmäßig macht das BTRFS -Dateisystem beschreibbare Schnappschüsse. Ein BTRFS -Snapshot ist wie ein Subvolumen. Sie können also die Dateien/Verzeichnisse eines beschreibbaren Schnappschusses ändern/aktualisieren.

Lassen Sie uns die aktualisieren Index.html Datei in der /Daten/Projekte/Web1 Subvolumen.

Öffnen Sie zuerst die Index.html Datei aus der /Daten/Projekte/Web1 Subvolumen mit dem Nano Texteditor wie folgt:

$ sudo nano/data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor. Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Index.html Datei.

Wie Sie sehen können, der Index.HTML -Datei der /Daten/Projekte/Web1 Subvolume unterscheidet sich von der /Daten/.Snapshots/Web1-2020-12-25 Schnappschuss.

$ CAT/Daten/Projekte/Web1/Index.html
$ cat /data /.Snapshots/Web1-2020-12-25/Index.html

Sie wollen die behalten Index.html Datei der /Daten/Projekte/Web1 Subvolumen.

So aktualisieren Sie die Index.html Datei in der /Daten/.Snapshots/Web1-2020-12-25 Snapshot und den folgenden Befehl ausführen:

$ sudo cp -v/data/projects/web1/index.HTML /Daten /.Snapshots/Web1-2020-12-25/Index.html

Wie Sie sehen können, die Index.html Datei der /Daten/.Snapshots/Web1-2020-12-25 Snapshot wird aktualisiert.

Das Aktualisieren eines Snapshots ist so einfach wie das Kopieren neuer Dateien in den Snapshot.

Schreibschüsse eines Subvolume schreibgeschützt

Manchmal möchten Sie nicht, dass die Schnappschüsse, die Sie in irgendeiner Weise aktualisiert haben, in irgendeiner Weise aktualisiert werden. In diesem Fall können Sie schreibgeschützte Schnappschüsse erstellen.

Zum Beispiel einen schreibgeschützten Schnappschuss erstellen /Daten/.Snapshots/Web1-2020-12-26 des /Daten/Projekte/Web1 Subvolume, führen Sie den folgenden Befehl aus:

$ sudo btrfs subvolume snapshot -r/data/projects/web1/data/.Snapshots/Web1-2020-12-26

Wie Sie sehen können, ein neues Subvolumen .Snapshots/Web1-2020-12-26 geschaffen.

$ sudo btrfs subvolume liste /Daten

Wie Sie sehen können, der Schnappschuss /Daten/.Snapshots/Web1-2020-12-26 ist schreibgeschützt.

$ sudo btrfs subvolume show /daten /.Snapshots/Web1-2020-12-26

Lassen Sie uns die aktualisieren Index.html Datei aus der /Daten/Projekte/Web1 Subvolumen.

Um das zu tun, öffnen Sie die Index.html Datei aus der /Daten/Projekte/Web1 Subvolumen mit dem Nano Texteditor wie folgt:

$ sudo nano/data/projects/web1/index.html

Nehmen Sie alle gewünschten Änderungen vor. Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und Um die Änderungen zu speichern.

Wie Sie sehen können, die Index.html im /Daten/Projekte/Web1 Subvolume unterscheidet sich von der /Daten/.Snapshots/Web1-2020-12-26 Schnappschuss.

$ CAT/Daten/Projekte/Web1/Index.html
$ cat /data /.Snapshots/Web1-2020-12-26/Index.html

Versuchen wir, die zu aktualisieren Index.html Datei in der /Daten/.Snapshots/Web1-2020-12-26 Schnappschuss.

$ sudo cp -v/data/projects/web1/index.HTML /Daten /.Snapshots/Web1-2020-12-26/Index.html

Wie Sie sehen können, können Sie die nicht aktualisieren Index.html Datei der /Daten/.Snapshots/Web1-2020-12-26 Snapshot, weil der Schnappschuss schreibgeschützt ist.

Einen Schnappschuss entfernen

Ich habe dir früher gesagt, dass ein BTRFS -Snapshot wie ein Subvolumen ist. Sie können also einen BTRFS -Snapshot entfernen, genau wie Sie ein BTRFS -Subvolume entfernen. Gleicher Befehl.

So ist der Dateibaum des BTRFS -Dateisystems, der auf dem montiert ist /Daten Das Verzeichnis sieht im Moment aus wie.

$ tree -a /Daten

Lassen Sie uns die entfernen .Snapshots/Web1-2020-12-25 Schnappschuss.

$ sudo btrfs subvolume liste /Daten

Um das zu entfernen /Daten/.Snapshots/Web1-2020-12-25 Snapshot und den folgenden Befehl ausführen:

$ sudo btrfs subvolume löschen /daten /.Snapshots/Web1-2020-12-25

Wie Sie sehen können, der Schnappschuss .Snapshots/Web1-2020-12-25 ist nicht mehr.

$ sudo btrfs subvolume liste /Daten

Wie Sie sehen können, sind die Dateien/Verzeichnisse der /Daten/.Snapshots/Web1-2020-12-25 Snapshot wird ebenfalls entfernt.

$ tree -a /Daten

Abschluss

Dieser Artikel hat Ihnen gezeigt. Ich habe Ihnen auch gezeigt, wie Sie einen beschreibbaren Schnappschuss aktualisieren und Dateien von einem Snapshot wiederherstellen können. Ich habe Ihnen gezeigt, wie Sie auch einen BTRFS -Snapshot entfernen können. Dieser Artikel sollte Ihnen helfen, mit der BTRFS -Snapshot -Funktion zu beginnen.