Tar-Archivierungsprogramm: Erstellen von Backups und Archivieren von Dateien
Das Programm tar – Datei, die für steht T affen Ar Chiver ist ein Speichersystem – Bandlaufwerke basierend auf der alten Methode der Sicherung oder Sicherungen , die sich nach wie vor seine Kunden zu überzeugen. Obwohl es heutzutage nur noch selten von Heimanwendern verwendet wird, gilt tar weiterhin als bevorzugtes Archivierungswerkzeug auf UNIX-Systemen. Darüber hinaus können Sie mit diesem Dateiarchivierungsprogramm regelmäßig inkrementelle Sicherungen von Servern erstellen. Hier werden wir nicht nur die Verwendung des Programms erläutern, sondern auch die erforderlichen Befehle angeben, um Sicherungen mit tar durchzuführen.
- Wie funktioniert Teer?
- Wie installiere ich Teer?
- Wie benutzt man Teer?
- Backups mit Teer
- Backups mit tar erstellen
- Inkrementelle Sicherung mit Teer
- Erstellen einer inkrementellen Sicherung mit tar
- Stellen Sie ein System mit einer Sicherung wieder her
Wie funktioniert Teer?
Das tar-Archivierungsprogramm wird zum Archivieren von Dateien und Ordnern unter Linux und anderen verwandten Systemen verwendet und bietet, so seltsam es auch scheinen mag, keine Komprimierungsfunktion in seiner Standardform. Trotzdem ist das Programm bekannt, da Sie damit ganze Ordner in einer einzigen Datei kombinieren können . Diese Technologie ist mit der Geschichte des Programms selbst verbunden, da in einem Bandlaufwerkspeichersystem alle Daten nacheinander auf ein Magnetband übertragen werden, was die sequentielle und lineare Speicherung des Teerformats erklärt, in dem die Neue Dateien werden an eine Hauptdatei angehängt. Die aus der Verkettung von Dateien resultierende Datei wird auch als Tarball bezeichnet , da sie buchstäblich miteinander verknüpft sind.
Wenn Sie diese Art von Datei komprimieren möchten, müssen Sie tar mit gzip kombinieren. Beide Programme ergänzen sich perfekt, da gzip nur einzelne Dateien komprimieren kann. Aus diesem Grund wird tar immer zuerst verwendet, gefolgt von gzip oder einem anderen Komprimierungsprogramm, sodass nach dem Komprimieren .tar.gz- oder .tzip-Dateien generiert werden.
Wie installiere ich Teer?
In Ubuntu ist das Tarball-Programm Standard. Wenn Sie eine andere Linux- oder Unix-Distribution verwenden, können Sie das Programm installieren mit:
sudo apt-get install tar tar-doc
Das tar-doc-Paket ist optional und enthält Dokumentation zum Archivierungsprogramm.
Wie benutzt man Teer?
Es ist möglich, tar zu verwenden, indem Sie einfach der Syntax folgen:
tar Option fichero
Unter den Optionen finden wir:
Möglichkeit | Beschreibung | Besonderheit | |
---|---|---|---|
–Hilfe | Alle Optionen anzeigen. | ||
–Ausführung | Zeigt die aktuelle Version von tar an. | ||
-c | Erstellen Sie eine neue Datei | (erstellen) | |
-d | Vergleichen Sie die Dateien im Archiv und im Dateisystem. | (diff) | |
-F | Schreiben Sie eine Datei in die angegebene Datei oder wählen Sie die Daten aus der angegebenen Datei aus. | (Datei) Diese Option muss am Ende angegeben werden, da die folgenden Einträge als Dateien interpretiert werden. | |
-z | Komprimieren oder entpacken Sie die Datei direkt mit gzip. | gzip muss bereits installiert sein. | |
-Z | Komprimieren oder dekomprimieren Sie die Datei direkt mit komprimieren. | Die Komprimierung muss bereits installiert sein. Beachten Sie den Großbuchstaben. | |
-j | Komprimieren oder entpacken Sie die Datei direkt mit bzip2. | bzip2 muss bereits installiert sein. | |
-J | Komprimieren oder entpacken Sie die Datei direkt mit xz. | xz muss bereits installiert sein. Achtung mit dem Großbuchstaben. | |
-k | Verhindert, dass Dateien andere vorhandene Dateien überschreiben, wenn sie aus dem Archiv extrahiert werden. | ||
-p | Speichern Sie die Zugriffsrechte beim Extrahieren. | ||
-r | Fügen Sie dem vorhandenen Archiv eine Datei hinzu. | (neu erstellen) Die Datei wird mit der vorherigen verkettet, was nur funktioniert, wenn die Datei nicht komprimiert wurde. | |
-t | Zeigt den Inhalt einer Datei an. | (Tabelle) | |
-oder | Es werden nur Dateien hinzugefügt, die aktueller sind als ihre aktuellen Versionen im Archiv. | ||
-v | Zeigt den Archivierungsprozess an. | (ausführlich) | |
-vv | Zeigt detailliertere Informationen zum Archivierungsprozess an. | (sehr ausführlich) | |
-w | Jede Aktion muss ratifiziert werden. | ||
-x | Dateien aus dem Archiv extrahieren. | (Auszug) Die Dateien bleiben in der Datei. | |
-ZU | Fügen Sie die Dateien, aus denen ein vorhandenes Archiv besteht, einem anderen hinzu. | Beachten Sie den Großbuchstaben. | |
-C | Zeigt den Speicherort zum Extrahieren der Dateien an. | Beachten Sie den Großbuchstaben | |
-M | Erstellen, Anzeigen oder Extrahieren einer Mehrfachdatei. | Beachten Sie den Großbuchstaben | |
-L | Ändern Sie das Medium, nachdem die Datei eine bestimmte Größe hat. | Die Größe wird in Kilobyte gemessen. Beachten Sie den Großbuchstaben. | |
-W | Überprüfen Sie die Datei, nachdem sie geschrieben wurde. | Beachten Sie den Großbuchstaben. | |
-P | Archivieren Sie alle Dateien im Stammverzeichnis. | Beachten Sie den Großbuchstaben. | |
–ausschließen | Dateien oder Ordner ausschließen. | Geben Sie nach dem Erstellen den Befehl mit –exclude = <Datei / Ordner> an | |
-X | Lesen Sie eine Liste der ausgeschlossenen Dateien. | Benötigt eine zuvor erstellte Liste: -X <Liste> .list. Beachten Sie den Großbuchstaben. | |
-G | Erstellt einen Datensatz aller Ordner einschließlich Prüfsummen. |
Bei der Erstellung von TAR-Dateien haben Sie auch die Möglichkeit, Platzhalterzeichen mit einem Sternchen zu versehen. Wenn Sie mit diesem Programm eine Datei erstellen, müssen Sie zunächst die Optionen schreiben, gefolgt vom Namen der Datei, die Sie erstellen möchten, und schließlich die Dateien und Ordner, die sie enthalten sollen. Im folgenden Beispiel wird ein Archiv (-c) mit zwei Textdateien erstellt, mit gzip (-z) komprimiert und in die Datei archiv.tar.gz ( -f ) geschrieben:
tar -czf archiv.tar.gz ejemplo_1.txt ejemplo_2.txt
Wenn Sie alle Textdateien in einem Ordner in einer TAR-Datei gruppieren möchten, verwenden Sie den entsprechenden Platzhalter:
tar -cf text_archiv.tar *.txt
Es ist auch möglich, ganze Ordner und Unterordner in eine TAR-Datei anzuhängen. In diesem Beispiel wird der Ordner / mit allen Unterordnern und den darin enthaltenen Dateien mit Ausnahme des Unterordners / folder1 / subfolder_x gespeichert :
tar -cf archiv.tar --exclude="/carpeta1/subcarpeta_x" /carpeta_1
Im folgenden Beispiel können Sie die im ersten Beispiel erstellte komprimierte Datei (-z) in einem anderen Ordner (-C) extrahieren (-x):
tar -xzf archiv.tar.gz -C /home/ carpeta1/archiv_carpeta
Fügen Sie den folgenden Befehl hinzu, um einem Tar-Archiv, das nicht komprimiert werden soll, eine weitere Datei hinzuzufügen:
tar -rf archiv.tar ejemplo_extra.txt
Backups mit Teer
Webmaster neigen aus zwei Gründen dazu, tar zum Erstellen von Backups zu verwenden. Einerseits bleibt die Ordnerstruktur unverändert, andererseits ermöglicht der Funktionsumfang des Programms zahlreiche zusätzliche Präzisionsanpassungen , die deutlich werden, wenn die zahlreichen im vorherigen Abschnitt beschriebenen Optionen berücksichtigt werden. Als Nächstes erklären wir, wie Sie mit tar vollständige und inkrementelle Sicherungen erstellen.
Backups mit tar erstellen
In jeder Sicherheitsstrategie ist es praktisch, ein Sicherungsskript zu erstellen, um Ihr System zu schützen, anstatt Dateien manuell erstellen zu müssen. Durch die Automatisierung des Prozesses können weitere Ordner gespeichert , komprimiert und auf ein externes Speichersystem übertragen werden. Dazu ist eine kontinuierliche Berechtigung zum Schreiben und Lesen in den entsprechenden Ordnern erforderlich. Legen Sie zunächst einen bin- Ordner in Ihrem Home-Verzeichnis ab , falls Sie noch keinen haben, und erstellen Sie dort das Skript. Im Folgenden finden Sie ein Beispielskript, das Sie an Ihre Anforderungen und die Struktur Ihrer Ordner anpassen sollten:
#!/bin/bash DATE=$(date +%Y-%m-%d-%H%M%S) BACKUP_DIR="/carpetadestino /backup" SOURCE="$HOME/carpetaorigen" tar -cvzpf $BACKUP_DIR/backup-$DATE.tar.gz $SOURCE
Damit Sie die Wirkung dieses Skripts perfekt verstehen können, erklären wir es Ihnen Zeile für Zeile:
- Die erste Zeile heißt shebang und ist für die gemeinsame Nutzung des mit dem Betriebssystem zu verwendenden Interpreters verantwortlich. In diesem speziellen Fall wird Bash verwendet.
- Jede mit tar erstellte Sicherung enthält einen Zeitstempel, der erforderlich ist, damit die Sicherungen voneinander unterschieden werden können. Die Variablen zeigen beispielsweise das Format Jahr-Monat-Tag-Stunde-Minute Sekunde: 2017-09-07-152833.
- Bestimmen Sie dann, in welchem Ordner Sie das Backup erstellen und ablegen möchten? /? nach dem letzten Unterordner.
- Diese Zeile gibt an, welchen Ordner oder welche Ordner Sie in die Datei einfügen möchten, da diese aus mehreren bestehen können, sofern sie durch ein Leerzeichen getrennt sind. SOURCE = “$ HOME / originfolder1 $ HOME / originfolder2 “. Wie Sie sehen können, ist hier nicht enthalten? /? am Ende des Ordners, obwohl Sie vor dem schließenden Zitat ein Leerzeichen hinzufügen müssen.
- Die letzte Zeile des Skripts enthält den Befehl tar:
- -cvzpf erstellt eine TAR- Datei ( -c ), zeigt den Archivierungsprozess ( -v ), komprimiert mit gzip ( -z ), speichert Zugriffsrechte ( -p ) und alles wird an die nächste Datei gesendet ( -f ) . Insbesondere -v und ? P sind optional, dh Sie können zwischen anderen Optionen wählen, um Ihr Backup zu erstellen.
- $ BACKUP_DIR / backup- $ DATE.tar.gz benennt den Ordner ( $ BACKUP_DIR ) und die Datei, in der die Sicherung gespeichert werden soll. In unserem Beispiel folgt es der folgenden Struktur: Zuerst der Name des Ordners, gefolgt vom Namen der Sicherungsdatei . Danach der aktuelle Zeitstempel und das Format. Vergessen Sie nicht, dass Sie das Dateiformat und die Befehlsoption ändern müssen, wenn Sie sich für eine andere Komprimierungsmethode entscheiden.
- Schließlich teilt es tar mit der Variablen $ SOURCE mit , was archiviert werden soll. Beachten Sie, dass Sie mit –exclude oder ? X Dateien oder Ordner ausschließen können, die Sie nicht in der Sicherung speichern möchten.
- -cvzpf erstellt eine TAR- Datei ( -c ), zeigt den Archivierungsprozess ( -v ), komprimiert mit gzip ( -z ), speichert Zugriffsrechte ( -p ) und alles wird an die nächste Datei gesendet ( -f ) . Insbesondere -v und ? P sind optional, dh Sie können zwischen anderen Optionen wählen, um Ihr Backup zu erstellen.
Im Prinzip ist unter Linux und Unix die Erweiterung der Skriptdatei nutzlos, da die Systeme den Dateityp lesen und seine Struktur mit einer magischen Datei (magische Datei) vergleichen, dh einer Datenbank, die Sie sind normalerweise in / etc / magic zu finden. Trotz allem ist es allgemein üblich geworden, die Erweiterung anzugeben, da sie dem Benutzer einen Überblick gibt .
Speichern Sie nun die Sicherungsdatei im Ordner bin und fügen Sie ihren Pfad zur Variablen PATH hinzu:
PATH=$PATH:$HOME/bin
Das gerade erstellte Sicherungsskript muss noch ausführbar werden:
chmod u+x $HOME/bin/backup
Hierfür können Sie festlegen, dass nur Sie die Datei ( u ) ausführen können , obwohl es auch möglich ist, diese Rechte an eine Gruppe ( g ), an andere ( o ) oder an alle ( a ) zu übertragen. Zu diesem Zeitpunkt endet der Erstellungsprozess und das Skript kann ausgeführt werden:
sudo backup
Wenn Sie das Backup erneut erstellen möchten, dh die TAR-Datei extrahieren möchten, müssen Sie nur den folgenden Befehl schreiben:
tar -xzf backup.tar.gz -C /
Das Skript erstellt eine vollständige Sicherung. Beachten Sie jedoch, dass diese Auswahl nicht immer am besten geeignet ist, wenn Sie mit der Speicherung eines vollständigen Servers fortfahren möchten. Vielleicht ist es besser zu überlegen, ob eine inkrementelle Sicherung mit Teer nicht besser zu Ihren Interessen passt.
Beim Erstellen eines Archivs mit einem absoluten Dateipfad zeigt tar die folgende Warnung an 😕 Tar: Entfernen des führenden Zeichens? /? des Namens der Elemente? Dies ist keine Fehlermeldung, sondern eine sichere Rückspulanzeige, da tar / home / subfolder in home / subfolder konvertiert . Wenn Sie sich beim Extrahieren der Datei nicht im Stammordner befinden, erstellt tar eine neue Ordnerstruktur, z. B. / home / subfolder / home / subfolder , wodurch die Wahrscheinlichkeit verringert wird, dass Sie versehentlich ein gesamtes System überschreiben. Beachten Sie, dass Unix nicht fragt, ob es überschrieben werden soll. Wenn es wirklich Inhalte gibt, die Sie ersetzen möchten, müssen Sie zuerst mit der Option? P zum Stammordner navigieren.
Inkrementelle Sicherung mit Teer
Es ist üblich, dass Webmaster regelmäßig Backups erstellen , um Datenverlust zu vermeiden . Wenn das aktuelle System Ihren Dienst ablehnt, kompromittiert oder löscht, kann eine funktionale Version der Sicherung verwendet werden. Je regelmäßiger die Speicherpunkte festgelegt werden, desto weniger Daten gehen verloren, wenn etwas mit dem System passiert. Wenn Sie jedoch jedes Mal eine vollständige Sicherung durchführen, dh alle Daten auf dem System archivieren, dauert dies nicht nur lange, sondern auch viel Speicherplatz. Stattdessen ist es möglich, inkrementelle Sicherungen mit tar zu erstellen.
Alle inkrementellen Sicherungen erfordern vollständigen Speicher. Aus diesem Grund müssen Sie zuerst das gesamte System oder den Teil davon archivieren, den Sie speichern möchten, und dann nur die neuen oder geänderten TAR-Dateien mit der inkrementellen Sicherung hinzufügen . Wenn die Sicherung erneut ausgeführt wird, ist die letzte vollständige Kopie zusammen mit jeder inkrementellen Sicherung erforderlich, die danach hinzugefügt wird. Dies führt zu einem viel geringeren Datenvolumen, erfordert jedoch höhere Kosten für die Wiederherstellung. Wenn eine der Dateien verloren geht, was heute viel unwahrscheinlicher ist als in Zeiten von Magnetbändern, ist die Sicherung unvollständig.
Erstellen einer inkrementellen Sicherung mit tar
Mit tar ist es möglich, regelmäßig inkrementelle Backups zu erstellen. Dazu müssen Sie auch ein eigenes Sicherungsskript erstellen, mit dem Sie beispielsweise festlegen können, dass einmal im Monat eine vollständige Sicherung und täglich eine inkrementelle Sicherung durchgeführt wird. Darüber hinaus können Sie mit diesem Skript alte Sicherungen regelmäßig in Ordner verschieben, die nach Datum klassifiziert sind. Hierfür wird Tar verwendet und auch cron, ein Daemon oder Programm, das im Hintergrund agiert und zeitbasierte Ausführungen anderer Prozesse ermöglicht. Dieses Programm ist standardmäßig in Ubuntu. Öffnen Sie dann ein Textverarbeitungsprogramm und erstellen Sie das Skript:
#!/bin/bash BACKUP_DIR="/ carpetadestino /backup" ROTATE_DIR="/ carpetadestino /backup/rotate" TIMESTAMP="timestamp.dat" SOURCE="$HOME/ carpetaorigen " DATE=$(date +%Y-%m-%d-%H%M%S) EXCLUDE="--exclude=/mnt/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/*" cd / mkdir -p ${BACKUP_DIR} set -- ${BACKUP_DIR}/backup-??.tar.gz lastname=${!#} backupnr=${lastname##*backup-} backupnr=${backupnr%%.*} backupnr=${backupnr//?/0} backupnr=$[10#${backupnr}] if [ "$[backupnr++]" -ge 30 ]; then mkdir -p ${ROTATE_DIR}/${DATE} mv ${BACKUP_DIR}/b* ${ROTATE_DIR}/${DATE} mv ${BACKUP_DIR}/t* ${ROTATE_DIR}/${DATE} backupnr=1 fi backupnr=0${backupnr} backupnr=${backupnr: -2} filename=backup-${backupnr}.tar.gz tar -cpzf ${BACKUP_DIR}/${filename} -g ${BACKUP_DIR}/${TIMESTAMP} -X $EXCLUDE ${SOURCE]
Hier erklären wir dieses Skript für Backups Schritt für Schritt:
- Zuerst müssen Sie den Interpreter neu definieren.
- Stellen Sie dann die Variablen ein. Hier müssen Sie auch einen Ordner für die Rotation von Sicherungen mit tar hinzufügen, dh eine Art Sicherungsdatei, sowie eine Datei für den Zeitstempel oder Zeitstempel.
- In unserem Beispiel zeigen wir, dass Sie nicht immer alle Ordner zur TAR-Datei hinzufügen müssen. Tatsächlich haben wir den Inhalt der Ordner mnt , proc , sys und tmp ausgewählt und nicht die Ordner selbst, daher die Verwendung von? *?, Da die Daten in diesen Ordnern temporär sind oder in erstellt werden müssen jedes System.
- Für den Weg alles richtig zu interpretieren, ändert sich das Skript in den Stammordner mit cd /.
- Mit mkdir wird der Sicherungsordner erstellt, falls er noch nicht erstellt wurde.
- Jetzt werden alle Variablen gelesen. Da die Sicherungen fortlaufend nummeriert werden sollen, ermittelt der Codeblock die Nummer der letzten, was passiert, wenn das Skript die anderen Komponenten aus dem Dateinamen entfernt.
- Es werden jeweils nur 30 Sicherungen gespeichert. Nachdem diese Anzahl überschritten wurde, werden sie vom Skript in den Rotationsordner verschoben. Dies wird zuerst erstellt, und dann werden alle Dateien, die mit bot beginnen, mit mv auf sie übertragen. Diese Einschränkung wird erklärt, indem berücksichtigt wird, dass nur die markierten Dateien eingegeben werden. Dies sind Sicherungen und Zeitstempel . Schließlich setzt das Skript die Sicherungsnummer auf 1 zurück. Wenn das Skript jedoch überprüft, dass 30 Sicherungen noch nicht erstellt wurden, erhöht sich die Dateinummer auf 1 ( ++ ).
- Jetzt kehrt das Skript fast zu dem zurück, was es ursprünglich getan hat, obwohl der Befehl dafür sorgt, dass der Dateiname mit der neuen Nummernreihenfolge wieder vollständig wird.
- Schließlich führt das Skript den Befehl tar aus. Im Gegensatz zum Befehl einer vollständigen Sicherung wird hier auch die Option? G hinzugefügt, die eine inkrementelle Sicherung ermöglicht. Außerdem liest tar den Zeitstempel jeder Datei und vergleicht ihn mit den bisher in timestamp.dat gespeicherten Daten, um die Änderungen zu ermitteln, die nach der letzten Sicherungskopie vorgenommen wurden, die Teil der neuen Datei sein wird.
Alle täglich durchgeführten Sicherungen werden jeden Monat vom Skript in einen neuen Ordner verschoben, um sicherzustellen, dass nur die aktuellsten Dateien im ursprünglichen Sicherungsordner gefunden werden. Es gibt jedoch keine integrierte Funktion, die die Anzahl der Dateiordner begrenzt, für die sie manuell gelöscht werden müssen.
Nach alledem sollte das Skript zum Erstellen einer inkrementellen Kopie mit tar bereits vorbereitet sein. Speichern Sie die Dateien als Backup im Ordner bin. Auch hier müssen Sie den Pfad exportieren und das Skript ausführbar machen.
PATH=$PATH:$HOME/bin chmod u+x $HOME/bin/backup
Theoretisch sollte es bereits möglich sein, das Backup- Skript mit sudo backup zu starten . Die Idee hinter inkrementellen Sicherungen besteht darin, dass Sie tägliche Sicherungen in einem automatisierten Prozess erstellen können , der mit cron mithilfe des crontab-Aufrufs erreicht wird, einer Tabelle, die in sieben Felder unterteilt ist:
Protokoll | Std | Tage | Monat | Wochentag | Auftrag | |
(0-59) | (0-23) | (1-31) | (1-12) | (0-7) |
In dieses Feld können Sie entweder Zahlen gemäß dem entsprechenden Wertrahmen in Klammern oder ein Sternchen eingeben, das angibt, dass alle möglichen Werte festgelegt sind. Darüber hinaus weist die Box der Wochentage eine Besonderheit auf, da hiermit festgestellt werden kann, ob eine Bestellung beispielsweise nur am Montag (1) oder an Werktagen (1-5) ausgeführt werden muss. Der Sonntag hat zwei verschiedene Werte, 0 oder 7, da es Leute gibt, die die Woche an diesem Tag beginnen, und andere, die sie hier beenden.
Öffnen Sie in der Befehlszeilenkonsole den Cron-Editor-Modus mit:
sudo crontab ?e
Fügen Sie die folgende Zeile hinzu:
30 7 * * * /home/bin/backup
Damit haben wir festgelegt, dass jeden Tag um 7:30 Uhr und einmal im Monat ein Backup durchgeführt werden muss. Wenn Sie die Änderungen speichern, ist die inkrementelle Sicherung einsatzbereit.
Cron funktioniert wie Webserver nur, wenn das System betriebsbereit ist. Wenn Sie das Skript auf Ihrem Computer oder Laptop installieren, um die Sicherung durchzuführen, müssen Sie sicherstellen, dass dieses Gerät jeden Tag zur geschätzten Zeit ausgeführt wird. Wenn nicht, wird die Sicherung nur erstellt, wenn Sie das Anacron-Programm verwenden, das für das Verschieben einer Aufgabe verantwortlich ist, die für eine Zeit geplant ist, in der das System nicht funktioniert, wenn das Gerät angeschlossen ist.
Stellen Sie ein System mit einer Sicherung wieder her
Obwohl niemand gesucht wird, kann es vorkommen, dass Sie das System wiederherstellen müssen. Glücklicherweise ist dieser Vorgang dank tar relativ einfach durchzuführen und erfordert kein zusätzliches Skript. Es sind jedoch mehr als die einfachen Befehle erforderlich, die bei vollständigen Sicherungen verwendet werden, da dies mit der Natur inkrementeller Sicherungen einhergeht, bei denen viele Dateien extrahiert werden müssen. Fügen Sie den folgenden Befehl in die Konsole ein:
BACKUP_DIR=/carpetadestino/backup cd / for archiv in ${BACKUP_DIR}/backup-*.tar.gz; do tar -xpzf $archiv -C / done
Beim Wiederherstellen eines Systems mit einer Sicherung werden alle Ordner und damit alle wichtigen Dateien überschrieben.
Verwenden Sie eine for-Schleife, damit Sie nicht jede TAR-Datei einzeln extrahieren müssen:
- Stellen Sie zuerst den Ordner ein, in dem sich die Sicherung befindet.
- Mit cd / wechseln in den Stammordner um sicherzustellen , dass die Datei von der richtigen Stelle extrahiert wird.
- Starten Sie nun eine for-Schleife. Dieser Befehl wiederholt alle Aktionen zwischen do und done, bis alle Möglichkeiten erfüllt sind. Legen Sie für die Spezifikation des Befehls den Pfad Ihrer Sicherung mit einem Sternchen als Platzhalter fest, da Sie alle Archivdateien aus dem Ordner extrahieren möchten.
- Der Befehl tar wird wie folgt angezeigt: extrahieren ( -x ) unter Beibehaltung der Zugriffsrechte (-p) und Entpacken (-z) des Archivs ( -f $ archiv ) im Stammordner ( -C / ).
- Mit getan Sie setzen den Endpunkt der for – Schleife.
Da die Sicherungen beim Erstellen der TAR-Datei fortlaufend nummeriert wurden, werden sie auch nacheinander ausgeführt, beginnend mit der ältesten. Dazu muss berücksichtigt werden, dass in den nach einer vollständigen Sicherung erstellten Dateien neue Versionen der darin enthaltenen Dateien enthalten sind. In der for-Schleife werden die alten Versionen zuerst extrahiert und später von den neuen überschrieben, sodass das gesamte System mit der Sicherung überschrieben werden kann, die die neueste archivierte Version jeder Datei enthält.
Der Hauptgrund, warum inkrementelle Sicherungen erstellt werden, besteht darin, die vollständige Wiederherstellung des Systems zu ermöglichen. Mit einem kleinen Umweg ist es jedoch auch möglich, nur einige der Dateien zu retten und eine Version vor der zuletzt erstellten wiederherzustellen:
BACKUP_DIR=/carpetadestino/backup ls -l ${BACKUP_DIR} for archiv in ${BACKUP_DIR}/backup-*tar.gz; do tar -tzf $archiv | grep fichero-buscado; done
Auch in den ersten Fällen wird die for-Schleife erneut verwendet, obwohl dies hauptsächlich für die Suche und nicht für die Extraktion verwendet wird:
- Definieren Sie den Sicherungsordner neu.
- Mit dem Befehl ls werden alle im Sicherungsordner enthaltenen Dateien und Ordner angezeigt. Die Option? L bietet detaillierte Informationen.
- Öffnen Sie eine for-Schleife wie beim vollständigen Wiederherstellen der Datei.
- Die Unterschiede zum vorherigen Prozess liegen in den Optionen des Befehls tar. Anstatt ein Archiv zu erstellen ( c ) oder zu extrahieren ( x ), muss der Inhalt des Archivs tar ( t ) angezeigt und die Ausgabe mit einem vertikalen Balken an den Befehl grep weitergeleitet werden , da nicht persönlich nach den Dateien gesucht werden soll. Der Befehl durchsucht die Ausgabe oder den Inhalt des Archivs nach den spezifischen Dateien, nach denen gesucht wird.
- Die for-Schleife endet.
Jetzt zeigt das Terminal die Dateien an, nach denen Sie suchen, und wahrscheinlich noch einige, wenn Sie regelmäßig damit gearbeitet haben und sie in jeder inkrementellen Sicherung angezeigt werden. Merken Sie sich den Dateipfad und erstellen Sie einen neuen Zyklus, der für die Wiederherstellung der zuletzt gespeicherten Version zuständig ist.
for archiv in ${BACKUP_DIR}/backup-*.tar.gz; do tar ?xzf $archiv -C / carpetadestino/backup/archivo-buscado done
Zu diesem Zeitpunkt werden die Dateien an ihrem ursprünglichen Speicherort wiederhergestellt und gegebenenfalls auch spätere Versionen überschrieben.