Backup und Wiederherstellung mit tar unter Linux erstellen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Lab lernen Sie den grundlegenden Prozess der Erstellung und Wiederherstellung eines Dateisystem-Backups in einer Linux-Umgebung mithilfe des Befehlszeilenprogramms tar (tape archive). Das Hauptziel ist es, praktische Erfahrungen mit wesentlichen Systemadministrationsaufgaben zu sammeln, einschließlich der Verwaltung von Benutzerberechtigungen und der Handhabung von Dateiarchiven. Sie werden den Befehl sudo verwenden, um Operationen mit erhöhten Rechten auszuführen, wenn dies für den Zugriff auf und die Sicherung von systemkritischen Verzeichnissen, insbesondere dem Verzeichnis /home, das Benutzerdaten enthält, erforderlich ist.

Das Lab führt Sie durch einen praktischen Workflow unter Verwendung des Standardbenutzerkontos labex mit sudo für administrative Aufgaben. Sie erstellen ein komprimiertes Archiv des gesamten /home-Verzeichnisses und überprüfen dessen erfolgreiche Erstellung. Um ein Wiederherstellungsszenario zu simulieren, navigieren Sie zu einem temporären Verzeichnis, /tmp, und extrahieren den Inhalt Ihres Backup-Archivs. Abschließend überprüfen Sie, ob die Dateien und die Verzeichnisstruktur korrekt an den neuen Speicherort wiederhergestellt wurden, um die Integrität Ihres Backup- und Wiederherstellungsprozesses zu bestätigen.

Die aktuelle Umgebung verstehen

In diesem Schritt lernen Sie Ihre aktuelle Umgebung kennen und wie Sie sudo für administrative Aufgaben verwenden. Der Benutzer labex hat die Möglichkeit, Befehle mit erhöhten Rechten über sudo (superuser do) auszuführen, was Ihnen erlaubt, administrative Aufgaben auszuführen, ohne zum root-Benutzerkonto wechseln zu müssen.

Die Verwendung von sudo ist eine bewährte Sicherheitspraxis, da sie temporär erhöhte Berechtigungen für bestimmte Befehle gewährt, während Ihr Benutzerkontext beibehalten wird. Dieser Ansatz ist sicherer als der vollständige Wechsel zum root-Benutzer, da er das Risiko versehentlich gefährlicher Befehle reduziert.

Zuerst überprüfen wir Ihre aktuelle Benutzeridentität und Ihren Standort, indem wir die Befehle whoami und pwd (print working directory) ausführen.

Überprüfen Sie, wer Sie sind:

whoami

Die Ausgabe sollte labex sein:

labex

Überprüfen Sie als Nächstes Ihr aktuelles Verzeichnis:

pwd

Die Ausgabe sollte anzeigen, dass Sie sich im Projektverzeichnis des Benutzers labex befinden:

/home/labex/project

Sie können Ihre sudo-Berechtigungen testen, indem Sie einen einfachen Befehl ausführen, der administrativen Zugriff erfordert. Lassen Sie uns das Verzeichnis /root überprüfen, das normalerweise erhöhte Berechtigungen benötigt:

sudo ls /root

Dieser Befehl wird erfolgreich ausgeführt und zeigt, dass Sie über die erforderlichen sudo-Berechtigungen verfügen, um administrative Aufgaben auszuführen. Der Befehl sudo gewährt Ihnen vorübergehend die erforderlichen Berechtigungen, um auf eingeschränkte Bereiche des Dateisystems zuzugreifen.

Nachdem Sie nun Ihre Umgebung und Ihre sudo-Fähigkeiten verstanden haben, sind Sie bereit, im nächsten Schritt ein Backup zu erstellen.

Erstellen eines Backup-Archivs des /home-Verzeichnisses

In diesem Schritt erstellen Sie ein Backup des /home-Verzeichnisses mit dem Befehl tar und sudo. Das Dienstprogramm tar (tape archiver) ist ein Standardwerkzeug unter Linux zum Erstellen, Anzeigen und Extrahieren von Archivdateien. Ein Archiv ist eine einzelne Datei, die mehrere andere Dateien und Verzeichnisse enthält, was deren Speicherung und Transport erleichtert.

Sie sind derzeit als Benutzer labex angemeldet, und Ihr aktuelles Arbeitsverzeichnis ist /home/labex/project. Sie werden die Backup-Datei in Ihrem Home-Verzeichnis erstellen, auf das Ihr Benutzerkonto zugreifen kann.

Der Befehl, den Sie verwenden werden, ist sudo tar -cvf ~/backup.tar /home. Lassen Sie uns die Optionen aufschlüsseln:

  • sudo: Dies gewährt die notwendigen Berechtigungen, um alle Dateien im /home-Verzeichnis zu lesen, einschließlich derer, die anderen Benutzern gehören.
  • -c (create): Diese Option weist tar an, ein neues Archiv zu erstellen.
  • -v (verbose): Dies bewirkt, dass tar jede Datei auflistet, während sie zum Archiv hinzugefügt wird. Dies ist nützlich, um den Fortschritt der Operation zu sehen.
  • -f (file): Diese Option ermöglicht es Ihnen, den Dateinamen des Archivs anzugeben. Sie muss unmittelbar vom Archivnamen gefolgt werden. In unserem Fall ist dies ~/backup.tar. Das ~ ist eine Abkürzung für Ihr Home-Verzeichnis (/home/labex).
  • /home: Dies ist das Quellverzeichnis, das Sie sichern möchten.

Führen Sie nun den Befehl in Ihrem Terminal aus, um das Backup-Archiv zu erstellen:

sudo tar -cvf ~/backup.tar /home

Da Sie die Option -v verwendet haben, sehen Sie eine lange Liste von Dateien, die auf Ihrem Bildschirm durchlaufen, während sie dem backup.tar-Archiv hinzugefügt werden. Die Ausgabe wird ähnlich wie diese aussehen und alle Dateien im /home-Verzeichnis auflisten:

tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...

Die Meldung tar: Removing leading '/' from member names ist normal. Sie bedeutet, dass tar die Pfade innerhalb des Archivs relativ zum angegebenen Verzeichnis speichert, was eine übliche Praxis für die Portabilität ist.

Im nächsten Schritt überprüfen Sie, ob die Datei backup.tar erfolgreich erstellt wurde.

Überprüfung der Erstellung der backup.tar-Datei

In diesem Schritt überprüfen Sie, ob das Archiv backup.tar im vorherigen Schritt erfolgreich erstellt wurde. Nach der Durchführung einer kritischen Operation wie einem Backup ist es immer eine gute Praxis, zu bestätigen, dass die erwartete Ausgabedatei existiert.

Da Sie die Backup-Datei in Ihrem Home-Verzeichnis (~/backup.tar) erstellt haben, müssen Sie Ihr Home-Verzeichnis überprüfen. Der einfachste Weg, die Datei zu überprüfen, ist die Verwendung des Befehls ls (list) mit dem vollständigen Pfad oder die Navigation zu Ihrem Home-Verzeichnis.

Führen Sie den Befehl ls aus, um Ihr Home-Verzeichnis zu überprüfen:

ls ~

Der Befehl listet alle Dateien und Verzeichnisse in Ihrem Home-Verzeichnis auf. Sie sollten die Datei backup.tar in der Ausgabe sehen:

backup.tar

Alternativ können Sie die Datei direkt über ihren vollständigen Pfad überprüfen:

ls -l ~/backup.tar

Die Ausgabe wird in etwa so aussehen:

-rw-r--r-- 1 root root 10240 <Date> <Time> /home/labex/backup.tar

Diese detaillierte Auflistung gibt Ihnen mehr Sicherheit, indem sie zeigt, dass die Datei existiert und eine Größe ungleich Null hat, was Sie von einem Backup-Archiv erwarten würden. Beachten Sie, dass die Datei root gehört, da Sie sie mit sudo erstellt haben, sie aber in Ihrem zugänglichen Home-Verzeichnis gespeichert ist.

Nachdem Sie das Backup erfolgreich erstellt und überprüft haben, besteht der nächste Schritt darin, ein Wiederherstellungsszenario zu simulieren.

Wechseln in das /tmp-Verzeichnis zur Wiederherstellung

In diesem Schritt wechseln Sie Ihr aktuelles Verzeichnis nach /tmp. Um die Wiederherstellung eines Backups zu üben, ist es am besten, die Dateien zuerst an einen neutralen Ort zu extrahieren. Dies verhindert, dass vorhandene Dateien versehentlich überschrieben werden, und ermöglicht es Ihnen, die wiederhergestellten Daten zu überprüfen, bevor Sie sie an ihren endgültigen Bestimmungsort verschieben. Das /tmp-Verzeichnis ist ein Standardort auf Linux-Systemen für temporäre Dateien und eignet sich perfekt für diesen Zweck.

Um zwischen Verzeichnissen im Linux-Dateisystem zu navigieren, verwenden Sie den Befehl cd (change directory). Sie befinden sich derzeit im Verzeichnis /root.

Um in das /tmp-Verzeichnis zu wechseln, führen Sie den folgenden Befehl aus:

cd /tmp

Nachdem Sie den Befehl ausgeführt haben, sieht Ihre Terminal-Eingabeaufforderung möglicherweise nicht anders aus, aber Ihr Speicherort im Dateisystem hat sich geändert. Sie können Ihren neuen Speicherort bestätigen, indem Sie den Befehl pwd (print working directory) verwenden, der den vollständigen Pfad Ihres aktuellen Verzeichnisses anzeigt.

pwd

Die Ausgabe sollte bestätigen, dass Sie sich jetzt in /tmp befinden:

/tmp

Nachdem Sie sich nun im /tmp-Verzeichnis befinden, sind Sie bereit, den Inhalt des zuvor erstellten backup.tar-Archivs zu extrahieren.

Extrahieren des Backup-Archivs in das aktuelle Verzeichnis

In diesem Schritt extrahieren Sie den Inhalt der Datei backup.tar in Ihr aktuelles Verzeichnis /tmp. Dieser Vorgang wird oft als "Wiederherstellung" aus einem Backup bezeichnet. Sie verwenden erneut den Befehl tar, jedoch mit anderen Optionen, um die Extraktion durchzuführen.

Sie befinden sich derzeit im Verzeichnis /tmp. Die Backup-Datei backup.tar befindet sich in Ihrem Home-Verzeichnis (/home/labex). Daher müssen Sie beim Ausführen des Befehls den vollständigen Pfad zur Archivdatei angeben.

Der Befehl zum Extrahieren des Archivs lautet tar -xvf ~/backup.tar. Betrachten wir die Optionen:

  • -x (extract): Diese Option weist tar an, Dateien aus einem Archiv zu extrahieren. Dies ist der Hauptunterschied zum Erstellungsbefehl.
  • -v (verbose): Wie zuvor listet dies jede Datei auf, während sie extrahiert wird, und zeigt Ihnen den Fortschritt an.
  • -f (file): Dies gibt den Namen der zu verarbeitenden Archivdatei an. Sie verwenden ~/backup.tar, um auf die Backup-Datei in Ihrem Home-Verzeichnis zu verweisen.

Beachten Sie, dass Sie für die Extraktion kein sudo benötigen, da Sie in /tmp extrahieren, das für normale Benutzer beschreibbar ist, und Sie nur die Backup-Datei lesen (keine Systemdateien ändern).

Führen Sie nun den Befehl in Ihrem Terminal aus, um die Dateien zu extrahieren:

tar -xvf ~/backup.tar

Sie sehen eine Liste von Dateien und Verzeichnissen, die in Ihrem aktuellen Verzeichnis (/tmp) erstellt werden. Die Ausgabe ist die Liste der Dateien, die im Archiv enthalten sind und Ihnen vom Zeitpunkt der Erstellung bekannt vorkommen sollten:

home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...

Diese Ausgabe zeigt an, dass tar ein Verzeichnis home innerhalb von /tmp erstellt hat und alle gesicherten Dateien und Verzeichnisse darin wiederhergestellt hat. Im letzten Schritt werden Sie dies überprüfen.

Überprüfen der wiederhergestellten Dateien in /tmp

In diesem letzten Schritt überprüfen Sie, ob die Dateien aus dem Backup-Archiv korrekt in das Verzeichnis /tmp extrahiert wurden. Dies ist ein entscheidender Teil jedes Wiederherstellungsprozesses, um die Datenintegrität sicherzustellen.

Sie befinden sich derzeit im Verzeichnis /tmp. Um das neu erstellte Verzeichnis home anzuzeigen, verwenden Sie den Befehl ls:

ls

Sie sollten ein Verzeichnis home neben anderen temporären Dateien sehen, die möglicherweise vorhanden sind:

home
...

Dies bestätigt, dass das oberste Verzeichnis aus dem Archiv erstellt wurde. Um gründlicher zu sein, schauen wir in dieses neue home-Verzeichnis, um zu sehen, ob es die erwarteten Benutzerdaten enthält.

ls home

Die Ausgabe sollte das Home-Verzeichnis des Benutzers labex anzeigen, das den Inhalt des ursprünglichen /home-Verzeichnisses darstellt, das Sie gesichert haben:

labex

Dies bestätigt, dass der Backup- und Wiederherstellungsprozess erfolgreich war. Sie haben erfolgreich ein Backup von /home mit sudo-Berechtigungen erstellt, es in Ihrem Home-Verzeichnis (/home/labex) gespeichert und es dann erfolgreich an einen temporären Speicherort unter /tmp/home wiederhergestellt.

Sie können überprüfen, ob die wiederhergestellten Dateien mit den Originalen übereinstimmen, indem Sie einige Dateien vergleichen. Sie können beispielsweise überprüfen, ob Ihre .bashrc-Datei ordnungsgemäß wiederhergestellt wurde:

ls home/labex/.bashrc

Die Ausgabe sollte bestätigen, dass die Datei existiert:

home/labex/.bashrc

Der Backup- und Wiederherstellungsprozess ist nun abgeschlossen. Sie haben erfolgreich demonstriert, wie Sie tar mit sudo-Berechtigungen verwenden, um ein System-Backup zu erstellen und dabei Ihren Benutzerkontext beizubehalten, was der empfohlene Ansatz für Aufgaben der Systemadministration ist.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine grundlegende Aufgabe der Systemadministration durchführen: das Erstellen und Wiederherstellen eines Verzeichnis-Backups mit dem Befehl tar unter Linux mit sudo-Berechtigungen. Der Prozess begann mit dem Verständnis Ihrer Umgebung als labex-Benutzer und der Verwendung von sudo zur Ausführung von Befehlen mit erhöhten Berechtigungen, wenn dies erforderlich war. Dieser Ansatz ist sicherer als der vollständige Wechsel zum root-Benutzer, da er temporäre erhöhte Berechtigungen für bestimmte Aufgaben bietet, während Ihr Benutzerkontext beibehalten wird.

Sie haben das tar-Dienstprogramm mit sudo verwendet, um eine einzelne Archivdatei, backup.tar, zu erstellen, die den gesamten Inhalt des Verzeichnisses /home enthielt und in Ihrem zugänglichen Home-Verzeichnis gespeichert wurde. Dies zeigte, wie System-Backups gehandhabt werden, während man innerhalb von Benutzergrenzen arbeitet und potenzielle Konflikte mit Systemfunktionen vermeidet.

Für den Wiederherstellungsteil des Labs haben Sie die bewährte Methode gelernt, zuerst zu einem sicheren, temporären Speicherort wie dem Verzeichnis /tmp zu wechseln, um das Überschreiben von Live-Daten zu vermeiden. Von dort aus haben Sie den Befehl tar verwendet, um den Inhalt aus dem Archiv backup.tar in Ihr aktuelles Verzeichnis zu extrahieren, ohne erhöhte Berechtigungen zu benötigen, da Sie nur die Backup-Datei gelesen und in einen für Benutzer zugänglichen Speicherort geschrieben haben. Der letzte Schritt bestand darin, zu überprüfen, ob die Dateien und Verzeichnisse aus dem Backup korrekt in /tmp wiederhergestellt wurden, was die Integrität des gesamten Backup- und Wiederherstellungszyklus bestätigte.