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

Seelenfrieden mit Restic Backup unter Linux

Backup ist eines der wichtigsten Dinge in jeder Branche, und Sie suchen vielleicht nach der zuverlässigsten Backup-Lösung. Warum versuchen Sie es nicht mit Restic Backup unter Linux?

Restic ist eine sichere, schnelle und zuverlässige Backup-Lösung. Und in diesem Tutorial erfahren Sie, wie Sie das Restic-Backup-System auf einem Linux-Server einrichten.

Lesen Sie weiter und verlieren Sie nie wieder Ihre Daten!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Um mitzumachen, stellen Sie sicher, dass Sie Folgendes haben:

  • Zwei Linux-Server – Dieses Tutorial verwendet zwei Debian 11-Server namens server1 und Backup-Server .
  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

Restic unter Linux installieren

Restic speichert Daten im verschlüsselten Repository, und jedes Mal, wenn Sie Daten zum Repository hinzufügen, erstellt Restic automatisch einen neuen Snapshot. Aber bevor Sie die Vorteile des Restic-Backup-Dienstprogramms nutzen können, müssen Sie zunächst Restic auf Ihrem Computer installieren.

1. Öffnen Sie Ihr Terminal und melden Sie sich bei server1 an Maschine.

2. Führen Sie als Nächstes wget aus Befehl unten, um die Restic-Binärdatei herunterzuladen. Zum jetzigen Zeitpunkt ist die neueste Version von Restic v0.12.1.

wget https://github.com/restic/restic/releases/download/v0.12.1/restic_0.12.1_linux_amd64.bz2

3. Führen Sie die folgenden Befehle aus, um restic_0.12.1_linux_amd64.bz2 zu extrahieren Datei und überprüfen Sie die restic_0.12.1_linux_amd64 Binärdatei existiert.

# Extract restic_0.12.1_linux_amd64.bz2
bzip2 -dv restic_0.12.1_linux_amd64.bz2
# List the files to verify restic_0.12.1_linux_amd64 exists
ls

4. Führen Sie nun den chmod aus Befehl, um den restic_0.12.1_linux_amd64 zu erstellen ausführbare Datei, benennen Sie sie dann um und verschieben Sie sie in den Ordner /usr/bin/restic Verzeichnis.

An dieser Stelle können Sie jetzt den restic-Befehl auf Ihrem Server ausführen.

# Make Restic file executable
chmod +x restic_0.12.1_linux_amd64

# Installing Restic
mv restic_0.12.1_linux_amd64 /usr/bin/restic

5. Führen Sie restic aus Befehl unten, um die Bash-Vervollständigung für Restic zu generieren. Dadurch können Nutzer den restic ganz einfach ausführen Befehl.

restic generate --bash-completion /etc/bash_completion.d/restic

6. Führen Sie zuletzt den folgenden Befehl aus, um die Bash-Vervollständigung in Ihrer aktuellen Terminalsitzung neu zu laden, und führen Sie dann restic aus Befehl und drücken Sie TAB um verfügbare Optionen für restic anzuzeigen Befehl.

Führen Sie zuletzt die folgenden Befehle aus, um die Bash-Vervollständigung in Ihrer aktuellen Terminalsitzung neu zu laden. Geben Sie restic ein und drücken Sie die TAB-TASTE, um verfügbare Optionen für den restic-Befehl anzuzeigen.

# reload bash completion
source /etc/profile.d/bash_completion.sh

# verify restic command
restic

Sie sollten alle verfügbaren Optionen des restic-Befehls sehen, wie unten gezeigt.

Einrichten eines Sicherungsservers

Jetzt, da Sie Restic auf server1 installiert haben Maschine ist der nächste Schritt die Einrichtung des backup-server , damit Sie Ihre Daten über das SFTP-Protokoll sichern können.

Standardmäßig ermöglicht Ihnen Restic, Daten im lokalen Verzeichnis, auf dem Remote-Server und im SFTP-Protokoll zu sichern. Mit Restic können Sie auch Daten auf Cloud-Backup-Diensten von Drittanbietern wie Amazon S3, Azure Blog Storage, Backblaze B2 und Google Cloud Storage sichern.

1. Öffnen Sie ein neues Terminal und melden Sie sich bei backup-server an Maschine.

2. Führen Sie als Nächstes den folgenden Befehl aus, um einen neuen Benutzer mit dem Namen johndoe zu erstellen und richten Sie ein Passwort ein.

# create new user
useradd -m -s /bin/bash johndoe

# setup the password
passwd johndoe

3. Führen Sie jeden der folgenden Befehle aus, um ein neues Sicherungsverzeichnis zu erstellen (/srv/backup ) für Restic und ändern Sie den Eigentümer (chown ) an johndoe Benutzer und Gruppe. Dieses Verzeichnis speichert alle Sicherungsdaten von server1 Maschine.

# create new backup directory
mkdir -p /srv/backup

# change ownership of the backup directory
sudo chown -R johndoe:johndoe /srv/backup

4. Wechseln Sie nun zu server1 Maschine und führen Sie den folgenden Befehl aus, um einen SSH-Schlüssel zu generieren.

Anstelle der passwortbasierten Authentifizierung entscheiden Sie sich für die schlüsselbasierte Authentifizierung. Ein SSH-Schlüssel ist unerlässlich, insbesondere wenn Sie ein automatisches Backup mit einem Shell-Skript einrichten oder Cron-Jobs verwenden.

ssh-keygen

Drücken Sie die EINGABETASTE bei den folgenden Eingabeaufforderungen, wie unten gezeigt. Dadurch wird der Speicherort Ihres SSH-Schlüssels auf das Standardverzeichnis (~/.ssh) festgelegt und das Passwort für Ihren privaten SSH-Schlüssel deaktiviert.

An dieser Stelle befinden sich im Verzeichnis ~/.ssh die Dateien id_rsa (privater SSH-Schlüssel) und id_rsa.pub (Ihr öffentlicher Schlüssel).

5. Führen Sie ls aus Befehl unten, um zu überprüfen, ob die id_rsa und id_rsa.pub Dateien existieren im ~/.ssh Verzeichnis.

ls ~/.ssh/

6. Führen Sie als Nächstes ssh-copy-id aus Befehl unten, um den öffentlichen SSH-Schlüssel auf backup-server hochzuladen . In dieser Demo ist der backup-server verwendet den Benutzernamen johndoe und die IP-Adresse 172.16.1.150 .

ssh-copy-id [email protected]

Wenn der Upload abgeschlossen ist, erhalten Sie die Meldung Anzahl der hinzugefügten Schlüssel:1 auf Ihrem Terminal.

7. Führen Sie zuletzt den ssh aus Befehl unten, um den backup-server zu bestätigen und sich mit ihm zu verbinden .

ssh [email protected]

Beachten Sie, dass Sie sich automatisch ohne Passwortauthentifizierung beim Backup-Server angemeldet haben.

Initialisieren eines neuen Repositorys

Sie haben jetzt den Restic-Sicherungsserver konfiguriert, daher besteht der nächste Schritt darin, ein neues Repository zu initialisieren. Restic speichert Backup-Daten in einem Repository und jede Backup-Aktion erstellt einen neuen Snapshot in diesem Repository.

1. Führen Sie restic aus Befehl unten zum Initialisieren (init ) ein Repository (-r :/srv/backup ) über das SFTP-Protokoll.

restic -r sftp:[email protected]:/srv/backup init

2. Geben Sie ein starkes Passwort für das Repository ein und bestätigen Sie das Passwort. Merken Sie sich das Passwort, da Sie es zum Entschlüsseln Ihrer Sicherungsdaten verwenden.

Wie unten gezeigt, wird das neue Repository (a9073b62d0) auf dem SFTP-Server (sftp:[email protected]:/srv/backup) erstellt.

3. Führen Sie zuletzt den restic aus Befehl unten, um das Repository zu überprüfen. Sie werden aufgefordert, das Passwort einzugeben, das Sie sich zuvor für das Repository notiert haben (Schritt zwei).

restic -r sftp:[email protected]:/srv/backup check

Wenn kein Fehler vorliegt, erhalten Sie die unten gezeigte Meldung, dass keine Fehler gefunden wurden.

Sichern von Daten in einem Repository

Sie haben jetzt das Repository mit dem SFTP-Server auf dem backup-server initialisiert . Aber wie sichert man Daten mit Restic? Sie sichern Daten von server1 zum Repository im backup-server .

1. Führen Sie restic aus Befehl unten, um die Daten von /var/www/wordpress zu sichern Verzeichnis zum Repository.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress

Geben Sie das Passwort für das Repository ein, und wenn der Sicherungsvorgang abgeschlossen ist, erstellt Restic den Snapshot (736949a9), wie unten gezeigt.

2. Führen Sie als Nächstes den folgenden Befehl aus, um alle snapshots aufzulisten .

restic -r sftp:[email protected]:/srv/backup snapshots

Stellen Sie sicher, dass der Snapshot (736949a9) in der Liste verfügbar ist, wie unten gezeigt

3. Führen Sie den folgenden Befehl aus, um alle Dateien aufzulisten (ls ) auf dem Snapshot (736949a9 ).

restic -r sftp:[email protected]:/srv/backup ls 736949a9

Sie sehen die Liste der Dateien auf dem Snapshot (736949a9), bei denen es sich um die Sicherungsdaten aus dem Verzeichnis /var/www/wordpress/  handelt.

Außerdem können Sie den folgenden Befehl ausführen, um mehrere Verzeichnisse (/var/www/wordpress und /var/www/html) im selben Repository zu sichern.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress /var/www/html

Beachten Sie unten, dass Restic einen neuen Snapshot (7b6e321e) erstellt hat.

4. Führen Sie nun jeden der folgenden Befehle aus, um alle Snapshots, Statistiken von Sicherungsdateien und den Unterschied zwischen zwei Snapshots aufzulisten (736949a9 und 7b6e321e ).

# checking list snapshots
restic -r sftp:[email protected]:/srv/backup snapshots

# show stats of repository
restic -r sftp:[email protected]:/srv/backup stats

# checking different between two snapshots
restic -r sftp:[email protected]:/srv/backup diff 736949a9 7b6e321e

Unten haben die Snapshots 736949a9 und 7b6e321e die gleichen Sicherungsdaten (/var/www/wordpress). Beachten Sie, dass ihre Dateigrößen im Repository ebenfalls gleich sind, da Restic nur Dateiänderungen sichert, wodurch Restic schnell und effizient wird.

Ausschließen von Dateien in Backup-Prozessen

Das Sichern von Daten ist praktisch, aber wie schließen Sie unnötige Daten aus? Mit Restic können Sie Dateien/Verzeichnisse mit dem --exclude-file ausschließen Option während des Sicherungsvorgangs.

Der --exclude-file Option kann Junk-Dateien wie Protokolldateien ausschließen, wodurch der Sicherungsvorgang schneller und sauberer wird.

1. Führen Sie den folgenden Befehl aus, um ein neues Verzeichnis mit dem Namen /opt/backup zu erstellen um die gesicherten Dateien zu speichern.

mkdir -p /opt/backup

2. Erstellen Sie als Nächstes eine neue Datei (/opt/backup/excludes.txt ) mit Ihrem bevorzugten Texteditor und füllen Sie die folgende Konfiguration aus.

Die folgende Konfiguration weist Restic an, Dateien mit unterschiedlichen Dateitypen auszuschließen.

# excludes files .zip
*.tar.gz

# excludes directory logs
logs

# exclude .txt files on the directory data
data/*.txt

3. Führen Sie den folgenden Befehl aus, um Daten von /var/www/html zu sichern Verzeichnis in das Repository (-r :/srv/backup ). Die --exclude-files Option weist Restic an, Dateien und Verzeichnisse auszuschließen, die in exludes.txt aufgeführt sind Datei.

restic -r sftp:[email protected]:/srv/backup backup /var/www/html --exclude-file=/opt/backup/excludes.txt

Unten wird der neue Backup-Snapshot ca99be01 von Restic erstellt, mit Ausnahme der Dateien, die Sie in der excludes.txt angegeben haben Datei.

4. Führen Sie nun den folgenden Befehl aus, um die Liste der Dateien zu überprüfen (ls ) auf dem Snapshot ca99be01 .

restic -r sftp:[email protected]:/srv/backup ls ca99be01

Sie sehen alle gesicherten Dateien außer denen, die Sie in der Konfigurationsdatei definiert haben (excludes.txt ).

5. Führen Sie abschließend tree aus Befehl unten, um zu überprüfen, ob das Ausschließen von Daten mit Restic funktioniert.

tree /var/www/html/

Wie Sie unten sehen, enthält das Verzeichnis /var/www/html Textdateien, aber Restic hat sie nicht von der Sicherung ausgeschlossen.

Snapshots aus dem Repository entfernen

In den meisten Fällen benötigen Sie höchstens zwei oder drei Versionen von Snapshots. Warum also nicht die älteren Snapshots entfernen? Zum Entfernen von Snapshots müssen Sie die ID des Snapshots kennen, überprüfen Sie also zuerst die Liste der Snapshots.

1. Führen Sie den folgenden Befehl aus, um alle Snapshots im Repository aufzulisten.

restic -r sftp:[email protected]:/srv/backup snapshots

Wählen Sie eine ID des zu entfernenden Snapshots aus (736949a9).

2. Führen Sie als Nächstes die folgenden Befehle aus, um (forget ) spezifischer Schnappschuss (736949a9 ) und seine verbleibenden Daten aus dem Repository.

# Removes snapshot only
restic -r sftp:[email protected]:/srv/backup forget 736949a9
# Removes remaining data from repository
restic -r sftp:[email protected]:/srv/backup prune

3. Führen Sie den folgenden Befehl aus, um einen --dry-run auszuführen und sehen Sie, welche Snapshots entfernt werden (forget ) und welche zwei Snapshot-Versionen beibehalten werden (--keep-last 2 ).

Vor dem Löschen von Snapshots wird immer ein Probelauf empfohlen, um zu vermeiden, dass wichtige Snapshots verloren gehen.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune --dry-run

4. Führen Sie den folgenden Befehl aus, um (forget ) alte Snapshot-Versionen und behalte die letzten beiden (--keep-last 2 ) aus dem Repository.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

5. Führen Sie abschließend den folgenden Befehl aus, um alle vorhandenen Snapshots aufzulisten.

restic -r sftp:[email protected]:/srv/backup snapshots

Sie können unten sehen, dass nur die letzten beiden Snapshot-Versionen übrig bleiben.

Wiederherstellen von Daten im Repository

Vielleicht haben Sie versehentlich wichtige Daten aus dem Repository entfernt. Wenn ja, wie bekommt man sie zurück? Glücklicherweise können Sie mit Restic Backup-Daten entschlüsseln und wiederherstellen, solange Sie die Snapshot-ID des Backups kennen.

1. Führen Sie restic aus Befehl unten, um verfügbare Snapshots im Repository zu prüfen.

restic -r sftp:[email protected]:/srv/backup snapshots

Nachfolgend finden Sie ein Beispiel für Snapshots, die im Repository verfügbar sind. Notieren Sie sich die Snapshot-ID der wiederherzustellenden Sicherungsdaten.

2. Führen Sie als Nächstes die folgenden Befehle aus, um ein Wiederherstellungsverzeichnis zu erstellen (/opt/restore ) und stellen Sie Ihren Ziel-Snapshot wieder her (6b44ac32 ) in dieses Wiederherstellungsverzeichnis.

# Create a restore directory
mkdir -p /opt/restore
# Restore snapshot data to the /opt/restore directory
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore

3. Führen Sie abschließend den ls aus Befehl unten, um die wiederhergestellten Daten zu überprüfen.

ls /opt/restore/var/www/wordpress

Wie unten gezeigt, sehen Sie die Liste der aus dem Snapshot wiederhergestellten Dateien (6b44ac32).

Wiederherstellen bestimmter Dateien

Sie haben gerade verlorene Daten wiederhergestellt, aber was ist, wenn Sie nur eine bestimmte Datei wiederherstellen müssen? Mit Restic können Sie auf eine bestimmte Datei abzielen, indem Sie den --include anhängen Option im restic Befehl.

1. Führen Sie den folgenden Befehl aus, um ein Verzeichnis zu erstellen, das die spezifische Datei enthält, die aus einem Snapshot wiederhergestellt werden soll.

mkdir -p /opt/restore/specific

2. Führen Sie als Nächstes restic aus Befehle unten, um ein bestimmtes Verzeichnis wiederherzustellen (/var/www/wordpress/wp-content ) und eine bestimmte Datei (wp-config.php ) aus dem Snapshot (6b44ac32 ). Jeder Befehl legt das Zielverzeichnis für die Wiederherstellung auf /opt/restore/specific fest Verzeichnis.

# restore specific directory wp-config
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-content

# restore specific file wp-config.php
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-config.php

3. Führen Sie zuletzt den ls aus Befehl unten, um die wiederhergestellte Datei und das Verzeichnis im Verzeichnis (/opt/restore/specific ).

ls /opt/restore/specific/var/www/wordpress

Wenn die Wiederherstellung korrekt funktioniert hat, werden das Verzeichnis (wp-content) und die Datei (wp-config.php) aus dem Snapshot (6b44ac32) wiederhergestellt.

Automatische Datensicherung mit Restic und Cron

An diesem Punkt haben Sie bereits die grundlegende Verwendung des Restic-Backup-Tools gelernt. Aber da das manuelle Sichern von Daten mühsam sein kann, warum sollten Sie Daten auf Ihrem Linux-System automatisch sichern? Restic kann zusammen mit Cron Wunder vollbringen, wie z. B. die Automatisierung des Prozesses der Datensicherung.

1. Erstellen Sie eine neue Datei (/opt/backup/.secret ) mit Ihrem bevorzugten Editor und geben Sie das Passwort Ihres Repositorys ein. Diese Demo verwendet das Passwort ResticRepositoryPassword für das Restic-Repository.

2. Führen Sie als Nächstes den folgenden Befehl aus, um die Berechtigung von /opt/backup/.secret zu ändern Datei nach 600 . Der Berechtigungscode 600 gibt nur dem /opt/backup/.secret Lese- und Schreibrechte Dateibesitzer.

chmod 600 /opt/backup/.secret

3. Führen Sie crontab aus Befehl unten, um einen neuen Cron-Job zu erstellen. Die -u root Die Option gibt an, dass der Cron-Job als Root-Benutzer ausgeführt wird.

crontab -u root -e

4. Wählen Sie Ihren bevorzugten Editor aus und die Cron-Konfigurationsdatei wird in diesem Editor geöffnet. Aber diese Demo verwendet den Nano Editor.

5. Füllen Sie abschließend die Cron-Konfiguration mit der folgenden Konfiguration, um die automatische Sicherung einzurichten und die Änderungen zu speichern.

Das folgende Skript führt Folgendes aus:

  • Führen Sie restic aus Befehl alle 1.AM zum Sichern von Verzeichnissen (/var/www/wordpress und /var/www/html ) an den Repository-SFTP-Server (sftp:[email protected]:/srv/backup ).
  • Alten Snapshot automatisch löschen bei 2.AM und behalten Sie die letzten beiden Versionen von Snapshots.
  • Gibt (--password-file ) die Datei (/opt/backup/.secret ), die Ihr Passwort für das Restic-Repository enthält, sodass Sie Ihr Passwort nicht in der Cron-Konfiguration fest codieren müssen.
# Runs daily backup at 1.AM
0 1 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup backup --verbose /var/www/{wordpress,html}

# Runs every 2.AM, and always keeps the last 2 backup snapshots
0 2 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie Restic unter Linux installieren und wie Sie Ihre Daten auf verschiedene Arten sichern, von Verzeichnissen bis hin zu bestimmten Dateien mit Snapshots. Abgesehen von der Datensicherung haben Sie entdeckt, dass Sie unerwartet verlorene Daten wiederherstellen können. Die Automatisierung spielt eine große Rolle bei der Sicherung Ihrer Daten, also lassen Sie die Cron-Jobs laufen, um Ihre Daten zu sichern.

An diesem Punkt sind Sie bereit, weitere Daten mit Restic zu sichern. Und warum nutzen Sie Ihr Backup nicht mithilfe von Tags, Filterrichtlinien und Backup-Cloud-Diensten?


Linux
  1. Machen Sie Musik unter Linux mit Ardour

  2. Bearbeiten Sie Audio unter Linux mit Audacity

  3. Linux-Paketverwaltung mit apt

  4. Was ist neu bei rdiff-backup?

  5. JQ-Befehl in Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

So sichern und wiederherstellen Sie Daten mit Restic unter Linux

So sichern und wiederherstellen Sie ein Linux-System mit Timeshift

Sichern und Wiederherstellen von Linux-Desktop-Systemeinstellungen mit Dconf

ReaR:Sichern und stellen Sie Ihren Linux-Server vertrauensvoll wieder her