tar.gz entpacken

J

jogisarge

Grünschnabel
Hallo zusammen !

Ich packe den Inhalt meines Web-Server täglich mit folgendem php-script:
Code:
system("tar cfvz ssave_".date("d.m.y").".tar.gz ../../content");
system("mv ssave_".date("d.m.y").".tar.gz ../../admin/s_backups");
Für jeden Wochentag gibt es ein backup(gepackt je 500mb).
Nun benötige ich eine Datei aus dem backup.
1. Wie kann ich nur eine Datei aus diesem backup herausholen,und an einem bestimmten Ort ablegen ?
2. Wie kann ich das gesammte backup an einem bestimmten Ort entpacken, und mir dort die Datei, die ich benötige, herauskopieren?

Hat jemand ne Idee
jogi
 
zuerst mit der option -t gucken wie genau die datei heißt. nun sei mal angenommen, das archiv heißt mittagessen.tar.gz und darin befinden sich die dateien semmel, leberkaese und pfefferoni. ich will die dateien semmel und pfefferoni :
tar xzf mittagessen.tar.gz mittagessen/semmel mittagessen/pfefferoni

mahlzeit !
 
jogisarge schrieb:
Hallo zusammen !

Ich packe den Inhalt meines Web-Server täglich mit folgendem php-script:
Code:
system("tar cfvz ssave_".date("d.m.y").".tar.gz ../../content");
system("mv ssave_".date("d.m.y").".tar.gz ../../admin/s_backups");
Für jeden Wochentag gibt es ein backup(gepackt je 500mb).
Nun benötige ich eine Datei aus dem backup.
1. Wie kann ich nur eine Datei aus diesem backup herausholen,und an einem bestimmten Ort ablegen ?
2. Wie kann ich das gesammte backup an einem bestimmten Ort entpacken, und mir dort die Datei, die ich benötige, herauskopieren?

Hat jemand ne Idee
jogi

Inhalt auflisten (um den genauen Pfad der gesuchten Datei zu sehen):
tar -tzf ssave_18.08.2006.tar.gz
# [Pfadname]/[Dateiname]

gewünschte Datei auspacken:
tar -xzf ssave_18.08.2006.tar.gz [Pfadname]/[Dateiname]

Es muss der genaue Pfad aus dem Archiv angegeben werden!


HINWEIS:
Wer "tar" zum Archivieren benutzt, spielt russisches Roulett!
TAR ist praktisch aber nicht sicher, denn es kann kein beschädigtes Archiv auspacken auch wenn die vorhandenen Schalter etwas anderes sugerieren!
Wenn Dein Dateisystem den Einsatz von "DUMP(8)" und "RESTORE(8)" unterstützt (BSD-ffs und Linux-ext2/3), dann ist das die erste Wahl!
An sonsten ist "cpio" (oder seinen Nachfolger "afio") als einziges Systemunabhängiges Boardmittel zu verwenden.
Am besten mit dem CRC-Format:

einpacken
=========
find archivdir -type f | cpio -oH newc | gzip -9 > /tmp/archiv.cgz

inhalt auflisten
================
zcat /tmp/archiv.cgz | cpio -it

überprüfen
==========
zcat /tmp/archiv.cgz | cpio -iv --only-verify-crc

auspacken
=========
zcat archiv.cgz | cpio -idmv
zcat archiv.cgz | cpio -idmv --no-absolute-filenames

Weitere Infos zu sinnfollen Backups/Archivierungen:
http://wiki.bsdforen.de/index.php/FreeBSD_-_Backup#Server_z.C3.BCgeln
http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/backup-basics.html
http://net-tex.dnsalias.org/~stefan/backup.pdf
 
Yoda schrieb:
HINWEIS:
Wer "tar" zum Archivieren benutzt, spielt russisches Roulett!
TAR ist praktisch aber nicht sicher, denn es kann kein beschädigtes Archiv auspacken auch wenn die vorhandenen Schalter etwas anderes sugerieren!
Sorry, aber das ist schon recht übertrieben.
Ich nutze tar seit Jahren, ohne dadurch je auch nur ein Bit verloren zu haben.
Der ewige Glaubenskrieg zwischen den entsprechenden Archivierungsprogrammen muss hier nicht unbedingt fortgesetzt werden.
Die richtige Lösung ist nunmal, Archive zu erstellen, die nicht beschädigt sind.
Im Übrigen habe ich auch praktisch schon Dateien aus beschädigten Archiven mit tar erfolgreich extrahiert.
Wenn du andere Erfahrungen hast, dann ist das noch lange nicht allgemeingültig.

Zum Thema:
Um Inhalte aus einem tar-archiv an andere Stelle zu entpacken, gibt es die Option -C
Siehe man tar

Gruß Wolfgang
 
Hallo,

@Yoda: Ich kann mich da Wolfgang anschließen. Das Problem dürfte eher die verbreitete Unsitte sein, Backups zu komprimieren. Da steckt der eigentliche Haken. Ein tar-Archiv, bei dem ein paar Bit umkippen, habe ich immer auspacken können, vielleicht ist eine Datei darin beschädigt oder zwei. Bei komprimierten tar-Archiven sieht das schon ganz anders aus. gzip tut nicht mehr was es soll, wenn irgendwas beschädigt ist.
Fazit: Backup mit tar (oder cpio oder afio) aber ohne Kompression. Dein "gzip -9" nach dem cpio würde mir eher zu denken geben.

Gruß
 
phrenicus schrieb:
Hallo,

@Yoda: Ich kann mich da Wolfgang anschließen. Das Problem dürfte eher die verbreitete Unsitte sein, Backups zu komprimieren. Da steckt der eigentliche Haken. Ein tar-Archiv, bei dem ein paar Bit umkippen, habe ich immer auspacken können, vielleicht ist eine Datei darin beschädigt oder zwei. Bei komprimierten tar-Archiven sieht das schon ganz anders aus. gzip tut nicht mehr was es soll, wenn irgendwas beschädigt ist.
Fazit: Backup mit tar (oder cpio oder afio) aber ohne Kompression. Dein "gzip -9" nach dem cpio würde mir eher zu denken geben.

Gruß
Stimmt, das packen von Archiven ist wirklich eine riskante Unsitte. :)
Trotzdem gibt es unterschiede bei der Desasterbehandlung von Archiven zwischen den einzelnen Archivprogrammen.
 

Ähnliche Themen

Script zum Bereinigen von Dateien mit Unterverzeichnissen (Schadcode löschen) eilt

tar - bestimmte datei entpacken

Shell vs. PHP

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

RedHat 4 (Lineox 4) in VMware mit BusLogic Treiber

Zurück
Oben