GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sichern und wiederherstellen Sie Daten mit Restic unter Linux

Diese Anleitung erklärt, was Restic ist, wie man Restic in verschiedenen Linux-Distributionen installiert und schließlich, wie man Daten mit Restic in Linux-Betriebssystemen sichert und wiederherstellt.

Restic - Eine schnelle, sichere und effiziente Sicherungsanwendung

Halten Sie sich zurück ist ein schnelles, quelloffenes, sicheres und plattformübergreifendes Sicherungsprogramm. Es ermöglicht das Speichern mehrerer Revisionen von Dateien und Verzeichnissen in einem verschlüsselten Repository, das auf verschiedenen Backends gespeichert ist.

Restic verwendet Kryptographie, um die Vertraulichkeit und Integrität Ihrer Daten zu gewährleisten. Es verschlüsselt die Daten mit AES-256 im Zählermodus und authentifizieren Sie es mit Poly1305-AES Authentifizierungscode für kryptografische Nachrichten.

Das Sichern und Wiederherstellen von Daten mit Restic ist einfach und sehr schnell! Es überträgt nur die geänderten Dateien (inkrementelles Backup), genau wie Rsync .

Mit Restic können wir problemlos Dateien und Verzeichnisse auf einer lokalen Festplatte oder einem Remote-System oder einem Cloud-Speicher sichern. Restic unterstützt beliebte Cloud-Speicher-Backends wie AWS, Azure, BackBlaze, Google Cloud, OpenStack und einige mehr.

Restic wird mit Go geschrieben Programmiersprache und deren Quellcode ist auf GitHub frei verfügbar. Es ist eine plattformübergreifende Sicherungsanwendung. Es unterstützt GNU/Linux, macOS, FreeBSD, openBSD und Microsoft Windows.

Installieren Sie Restic unter Linux

Restic ist für gängige Linux-Betriebssysteme gepackt.

Installieren Sie Restic unter Alpine Linux:

$ sudo apk add restic

Installieren Sie Restic unter Arch Linux, EndeavourOS, Manjaro Linux:

Restic ist in den Standard-Repositories von Arch Linux verfügbar. Stellen Sie sicher, dass [Community] Repository aktiviert ist und Restic in Arch Linux und seinen Varianten wie EndeavourOS, Manjaro Linux mit Pacman installiert wie unten gezeigt.

$ sudo pacman -S restic

Installieren Sie Restic von AUR:

Restic ist auch in AUR verfügbar. Sie können es also mit jedem AUR-Hilfsprogramm wie Paru installieren oder Juhu , in Arch-basierten Systemen.

$ paru -S restic-git

Oder,

$ yay -S restic-git

Installieren Sie Restic in Debian, Ubuntu, Linux Mint, Pop_OS!:

$ sudo apt-get install restic

Installieren Sie Restic in Fedora:

$ sudo dnf install restic

Installieren Sie Restic in RHEL, CentOS, AlmaLinux und Rocky Linux:

$ sudo dnf copr enable copart/restic
$ sudo dnf install restic

Installieren Sie Restic in Solus:

$ sudo eopkg install restic

Installieren Sie Restic in Nix OS:

$ nix-env --install restic

Installieren Sie Restic in openSUSE:

$ sudo zypper install restic

Restic mit Linuxbrew installieren:

$ brew install restic

Installieren Sie Restic von der Quelle:

Für andere Betriebssysteme können Sie es wie unten kompilieren und installieren. Stellen Sie zunächst sicher, dass Sie Go installiert haben Sprache auf Ihrem System.

  • So installieren Sie die Go-Sprache unter Linux

Sobald Go installiert ist, klonen Sie das restic github-Repository von git:

$ git clone https://github.com/restic/restic

Dieser Befehl klont den gesamten Inhalt des Restic-Repositorys im aktuellen Arbeitsverzeichnis.

Cd in das Restic-Verzeichnis:

$ cd restic

Und installieren Sie Restic wie folgt:

$ go run build.go

Überprüfen Sie die installierte Restic-Version:

$ restic version
restic 0.12.0 compiled with go1.14.12 on linux/amd64

Restic aktualisieren

Wenn Sie Restic aus offiziellen Repositories installiert haben, könnte es sich um eine etwas alte Version handeln.

Führen Sie Folgendes aus, um Restic auf die neueste Version zu aktualisieren:

$ sudo restic self-update

Überprüfen Sie nun die Version mit dem Befehl:

$ restic version
restic 0.12.1 compiled with go1.16.6 on linux/amd64

Sichern und Wiederherstellen von Daten mit Restic in Linux

Restic unterstützt die folgenden Backends zum Speichern des Backups:

  1. Lokales Verzeichnis,
  2. sftp-Server (über SSH),
  3. HTTP-REST-Server,
  4. AWS S3,
  5. OpenStack Swift,
  6. BackBlaze B2,
  7. Microsoft Azure Blob Storage,
  8. Google Cloud-Speicher
  9. Und viele andere Dienste über den rclone .

Lassen Sie uns nun sehen, wie man Daten in einem lokalen Verzeichnis sichert und wiederherstellt.

Neues lokales Repository erstellen

Lassen Sie uns zunächst ein Repository erstellen, um das Backup zu speichern. Zum Beispiel werde ich ein Repository mit dem Namen mybackup erstellen in meinem $HOME-Verzeichnis.

$ restic init --repo ~/mybackup

Geben Sie das Passwort für das Repository zweimal ein. Sie müssen sich das Passwort merken, um später auf dieses Repository zugreifen zu können. Andernfalls verlieren Sie die im Repository gespeicherten Daten dauerhaft. Sie wurden gewarnt!

enter password for new repository: 
enter password again: 
created restic repository c1c5bcfdb8 at /home/sk/mybackup

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Wie Sie in der obigen Ausgabe sehen, ist ein lokales Restic-Repository mit der ID c1c5bcfdb8 wird unter /home/sk/mybackup Ort.

Jetzt ist es an der Zeit, Ihre Daten im neu erstellten Repository zu sichern.

Daten mit Restic im lokalen Verzeichnis sichern

Ich werde die gesamten ~/mydata sichern Verzeichnis (einschließlich des Verzeichnisses selbst) in das Repository ~/mybackup mit Befehl:

$ restic -r ~/mybackup backup ~/mydata

Geben Sie das Passwort Ihres Repositorys ein:

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           7 new,     0 changed,     0 unmodified
Dirs:            4 new,     0 changed,     0 unmodified
Added to the repo: 21.919 MiB

processed 7 files, 21.913 MiB in 0:00
snapshot 7457d80e saved

Wie Sie sehen können, hat restic das Backup des angegebenen Verzeichnisses erstellt, z. B. mydata . Außerdem habe ich einen Snapshot des aktuellen Backups mit dem eindeutigen Namen 7457d80e erstellt .

Lassen Sie uns den obigen Befehl aufschlüsseln und sehen, was jede Option bewirkt.

  • restic :Der Restic-Befehl
  • -r :Gibt das Repository an
  • ~/mybackup :Repository-Name
  • backup - Restic-Unterbefehl zum Sichern von Dateien/Ordnern
  • ~/mydata - Das zu sichernde Verzeichnis.

Fügen Sie weitere Dateien/Ordner im Sicherungsverzeichnis hinzu. Zum Beispiel habe ich eine neue Datei namens vi editor.pdf hinzugefügt in ~/mydata Verzeichnis. Führen Sie nun denselben restic-Befehl erneut aus:

$ restic -r ~/mybackup backup ~/mydata
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
using parent snapshot 7457d80e

Files:           1 new,     0 changed,     7 unmodified
Dirs:            0 new,     3 changed,     1 unmodified
Added to the repo: 50.123 KiB

processed 8 files, 21.957 MiB in 0:00
snapshot 963d4de3 saved

Restic erstellt bei jeder Ausführung neue Snapshots mit eindeutigem Namen.

Da Restic inkrementelle Sicherungen durchführt, sind die nachfolgenden Sicherungen ziemlich schneller als die vorherigen Sicherungen. Wir können die Daten weiterhin im Sicherungsordner hinzufügen und die Sicherung ausführen, um viele Schnappschüsse zu erstellen.

Nicht nur die Verzeichnisse, Restic erlaubt uns auch, einzelne Dateien zu sichern.

$ restic -r ~/mybackup backup ~/mydata/vi\ editor.pdf 

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
no parent snapshot found, will read all files

Files:           1 new,     0 changed,     0 unmodified
Dirs:            3 new,     0 changed,     0 unmodified
Added to the repo: 47.129 KiB

processed 1 files, 45.139 KiB in 0:00
snapshot 59439d78 saved

Wie Sie sehen, wird im Repository ein neuer Snapshot namens 59439d78 erstellt.

Snapshots auflisten

Um die verfügbaren Snapshots in einem lokalen Repository aufzulisten, führen Sie Folgendes aus:

$ restic -r ~/mybackup snapshots

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Wie Sie sehen, habe ich 2 Snapshots, nämlich 7457d80e und 963d4de3 .

Überprüfen Sie den Unterschied zwischen zwei Schnappschüssen

Um den Unterschied zwischen zwei Snapshots zu überprüfen, können wir diff verwenden Option wie unten:

$ restic -r ~/mybackup diff 7457d80e 963d4de3

Dieser Befehl vergleicht die angegebenen zwei Snapshots und listet die Unterschiede auf, d. h. welche Dateien hinzugefügt, wie viele Dateien und Verzeichnisse aus dem Repository entfernt wurden.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
comparing snapshot 7457d80e to 963d4de3:

+    /home/sk/mydata/vi editor.pdf

Files:           1 new,     0 removed,     0 changed
Dirs:            0 new,     0 removed
Others:          0 new,     0 removed
Data Blobs:      1 new,     0 removed
Tree Blobs:      4 new,     4 removed
  Added:   50.123 KiB
  Removed: 4.511 KiB

Wie Sie sehen, habe ich der Sicherung eine neue PDF-Datei hinzugefügt.

Dateien und Ordner ausschließen

Es ist auch möglich, einige Dateien oder Verzeichnisse auszuschließen. Beispielsweise schließt der folgende Befehl alle .doc aus Typ Dateien:

$ restic -r ~/mybackup backup --exclude=*.doc ~/mydata

Alternativ können Sie den tatsächlichen Speicherort aller Dateien und Ordner, die Sie von der Sicherung ausschließen möchten, in einer Datei ablegen und deren Pfad im Sicherungsbefehl angeben.

Erstellen Sie beispielsweise eine Datei mit dem Namen exclude :

$ vi exclude.txt

Fügen Sie die Dateien oder Ordner hinzu, die Sie ausschließen möchten:

*.txt
ostechnix.zip
mydata/movies

Starten Sie nun den Sicherungsvorgang mit dem Befehl:

$ restic -r ~/backup backup --exclude-file=exclude.txt ~/mydata

Weitere Einzelheiten zu restic backup Befehl, führen Sie bitte aus:

$ restic help backup

Jetzt haben wir unsere Daten erfolgreich gesichert. Als nächstes werden wir sehen, wie die Daten aus der lokalen Sicherung wiederhergestellt werden.

Daten mit Restic wiederherstellen

Das Wiederherstellen von Daten ist einfach!

Listen Sie zuerst die verfügbaren Snapshots aus dem Repository mit dem Befehl auf:

$ restic -r ~/mybackup snapshots

Um die Daten aus einem bestimmten Snapshot wiederherzustellen, zum Beispiel 7457d80e , ausführen:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
restoring <Snapshot 7457d80e of [/home/sk/mydata] at 2021-08-13 12:51:58.592771333 +0530 IST by [email protected]> to /home/sk/mydata

Wir haben gerade die Daten aus dem Snapshot 7457d80e wiederhergestellt nach ~/mydata Verzeichnis.

Um eine einzelne Datei aus dem Snapshot wiederherzustellen, gehen wir wie folgt vor:

$ restic -r ~/mybackup restore 7457d80e --target ~/mydata file.json

Weitere Einzelheiten finden Sie unter restore Befehlshilfeabschnitt.

$ restic help restore

Repository bereitstellen, um Sicherungsdaten anzuzeigen

Sie können das Backup als normales Dateisystem durchsuchen. Dies ist praktisch, wenn Sie den Inhalt des Repositorys anzeigen möchten.

Erstellen Sie zuerst einen Einhängepunkt:

$ mkdir ostechnix

Mounten Sie dann Ihr Repository auf ostechnix Einhängepunkt wie unten gezeigt.

$ restic -r ~/mybackup mount ostechnix/

Dieser Befehl wird das Restic-Repository in Ihrem lokalen Dateisystem einhängen.

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
Now serving the repository at ostechnix/
When finished, quit with Ctrl-c or umount the mountpoint.

Öffnen Sie nun Ihren Dateimanager und Sie werden sehen, dass Ihr Repository dort gemountet ist. Gehen Sie zum Snapshots-Ordner und überprüfen Sie die Daten.

Wenn Sie fertig sind, drücken Sie Ctrl-c um den Einhängepunkt im Dateimanager zu beenden oder auszuhängen.

Weitere Einzelheiten finden Sie im Hilfebereich:

$ restic help mount

Snapshots entfernen

Listen Sie zunächst alle verfügbaren Snapshots in einem Repository auf:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
963d4de3  2021-08-13 12:57:55  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
2 snapshots

Um einen Snapshot zu löschen, zum Beispiel 963d4de3 , ausführen:

$ restic -r ~/mybackup forget 963d4de3

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
[0:00] 100.00%  1 / 1 files deleted

Überprüfen Sie, ob der Schnappschuss gelöscht wurde oder nicht:

$ restic -r ~/mybackup snapshots
enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
ID        Time                 Host        Tags        Paths
----------------------------------------------------------------------
7457d80e  2021-08-13 12:51:58  ostechnix               /home/sk/mydata
----------------------------------------------------------------------
1 snapshots

Der Schnappschuss ist weg! Die Daten, auf die von Dateien in diesem Snapshot verwiesen wurde, werden jedoch weiterhin im Repository gespeichert.

Um nicht referenzierte Daten zu bereinigen, führen Sie Folgendes aus:

$ restic -r ~/mybackup prune

Beispielausgabe:

enter password for repository: 
repository c1c5bcfd opened successfully, password is correct
loading indexes...
loading all snapshots...
finding data that is still in use for 1 snapshots
[0:00] 100.00%  1 / 1 snapshots
searching used packs...
collecting packs for deletion and repacking
[0:00] 100.00%  8 / 8 packs processed

to repack:            0 blobs / 0 B
this removes          0 blobs / 0 B
to delete:            5 blobs / 50.279 KiB
total prune:          5 blobs / 50.279 KiB
remaining:           25 blobs / 21.919 MiB
unused size after prune: 0 B (0.00% of remaining size)

rebuilding index
[0:00] 100.00%  6 / 6 packs processed
deleting obsolete index files
[0:00] 100.00%  3 / 3 files deleted
removing 2 old packs
[0:00] 100.00%  2 / 2 files deleted
done

Nachdem Sie alle Snapshots und die zugehörigen Daten entfernt haben, können Sie das Repository löschen.

$ rm -fr ~/mybackup/

Schlussfolgerung

Sie wissen jetzt, wie Sie das Restic-Sicherungsprogramm installieren und verwenden, um Ihre wichtigen Daten zu schützen. Wir haben nur behandelt, wie Sie Dateien und Ordner mit Restic in ein lokales Verzeichnis sichern. Es gibt mehr! In unseren kommenden Anleitungen werden wir sehen, wie man Daten auf einem Remote-System und einem Cloud-Speicher sichert.

Ich empfehle Ihnen auch, die offizielle Restic-Dokumentation zu lesen für eine detailliertere Verwendung.


Linux
  1. So installieren und verwenden Sie Flatpak unter Linux

  2. So sichern und wiederherstellen Sie Anwendungseinstellungen mit Mackup auf einem neu installierten Linux-System

  3. So sichern und wiederherstellen Sie das SVN-Repository unter Linux

  4. So sichern und wiederherstellen Sie RabbitMQ-Daten und -Konfigurationen

  5. Wie man GLFW 3 erstellt und installiert und in einem Linux-Projekt verwendet

So installieren und verwenden Sie PuTTY unter Linux

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

So verwenden Sie Timeshift zum Sichern und Wiederherstellen von Linux

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl