:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Dateien und Verzeichnisse mit TAR/Gzip komprimieren |
Systemvoraussetzung
- Linux
- PHP 3
- PHP 4
- PHP 5
- TAR
- GZIP
Datei(en)
gzip.php
Das Skript archiviert zuerst alle angegebenen Dateien und Verzeichnisse (rekursiv)
mit TAR. Erst im zweiten Schritt wird die erzeugte Archivdatei mit
Gzip komprimiert und die zuvor erstellte Archivdatei gelöscht. Zur besseren
Darstellung wurde bei der Erzeugung des TAR-Archivs
die Option „v“ gesetzt.
Somit wurde gewährleistet, dass die Funktion exec() ein Array mit allen
archivierten Dateien zurückliefern konnte (siehe Ausgabe).
- -c Erstellt ein neues Archiv
- -f Erstellt eine Archivdatei
Hinweis
Sollte das Skript, nachdem Sie es ausgeführt haben, keine Backupdatei erzeugen,
lesen Sie bitte den Text zu Verzeichnisrechten im einleitenden Teil
„Grundlegende Informationen“ in diesem Kapitel. Höchstwahrscheinlich wird
es dann daran liegen, dass Sie nicht die erforderlichen Rechte für dieses
Verzeichnis besitzen und diese erst vergeben müssen.
Dieses Beispiel wird neben den beiden Textdateien Testdatei1.txt und Testdatei2.
txt das komplette Verzeichnis testordner/ incl. Unterverzeichnissen
komprimieren. Weiterhin werden im testordnerSQL/ alle *.sql-Dateien
archiviert
und komprimiert. Sollten sich in diesem Verzeichnis weitere Unterverzeichnisse
mit sql-Dateien
befinden, werden diese nicht mit in die Archivdatei
aufgenommen. 01: 02: 03: 04: 05:
|
<?PHP $files[] = 'Testdatei1.txt'; $files[] = 'Testdatei2.txt'; $files[] = 'testordner/'; $files[] = 'testordnerSQL/*.sql'; |
Die in unserem Array $files zu sichernden Dateien müssen durch ein Leerzeichen
voneinander getrennt werden, damit der Befehl tar einwandfrei funktionieren
kann. Wir sparen uns einen Schritt und trennen durch && den Archivbefehl
tar vom Komprimierungsbefehl gzip. Wie wir in der Einleitung
bereits erklärt haben, verzichten wir hier bewusst auf espaceshellcmd().
Zum Schluss führen wir unser Statement mit dem Befehl exec() aus und
erhalten dank unseres Parameters v als Rückgabewert die gesicherten Dateinamen
und Verzeichnisse.
06:
07: 08: 09: 10: 11: 12:
| $implodeFiles = implode(" ", $files);
$tarName = 'backup.tar'; $shellBefehl = "tar cvf $tarName $implodeFiles && gzip $tarName"; exec($shellBefehl,$var); print_r($var); ?>
|
Ausgabe im Browser
Array
(
[0] => Testdatei1.txt
[1] => Testdatei2.txt
[2] => testordner/
[3] => testordner/Testdatei4.txt
[4] => testordner/Testdatei5.txt
[5] => testordner/Testdatei6.txt
[6] => testordnerSQL/selfphp_testfile.sql
[7] => testordnerSQL/selfphp_testfile1.sql
[8] => testordnerSQL/selfphp_testfile2.sql
) |
Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!
Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.
|
|
|
|
|
|