Article ID: 1757, created on Feb 27, 2009, last review on May 11, 2014

  • Applies to:
  • Plesk

Lösung

I. ERSTE METHODE:

Wenn Ihre Dump-Datei nicht allzu groß ist, zum Beispiel 100–200 MB groß, können Sie sie dekomprimieren und in einem beliebigen lokalen E-Mail-Client öffnen. In der Dump-Datei enthaltene Dateipfade werden als Anhänge gezeigt. Wählen Sie die benötigte Datei aus, speichern und dekomprimieren Sie sie.

II. ZWEITE METHODE:


Hierfür können mpack-Tools zum Arbeiten mit MIME-Dateien verwendet werden. Dieses Paket ist in Debian enthalten:     
# apt-get install mpack
 Bei anderen Linux-Systemen können Sie versuchen, RPM von ALT Linux zu verwenden:

ftp://ftp.pbone.net/mirror/ftp.altlinux.ru/pub/distributions/ALTLinux/Sisyphus/files/i586/RPMS/mpack-1.6-alt1.i586.rpm

Sie können mpack auch aus den Quellen kompilieren: http://ftp.andrew.cmu.edu/pub/mpack/.

 - Erstellen Sie ein leeres Verzeichnis zum Extrahieren der Backup-Datei: 
# mkdir recover
# cd recover

und kopieren Sie Backup in dieses Verzeichnis. Plesk-Backup ist standardmäßig mit Gzip komprimiert (falls nicht, verwenden Sie cat), also führen Sie zcat aus, um Daten an munpack zu übergeben und Inhalte von Verzeichnissen aus der Backup-Datei zu extrahieren: 
# zcat DUMP_FILE.gz > DUMP_FILE
# cat DUMP_FILE | munpack

 Sie erhalten dann den Satz von TAR- und SQL-Dateien, die die Verzeichnisse und Datenbanken der Domain enthalten. Dekomprimieren Sie mit Untar das benötigte Verzeichnis. Wenn Sie beispielsweise den Ordner httpdocs für die Domain DOMAIN.TLD wiederherstellen müssen: 
# tar xvf DOMAIN.TLD.htdocs


Hinweis: Das Tool 'munpack' funktioniert möglicherweise nicht mit Dateien, die größer als 2 GB sind, sodass Sie beim Extrahieren der Dump-Datei eine ähnliche Fehlermeldung wie die folgende erhalten können:

# cat DUMP_FILE | munpack
DOMAIN.TLD.httpdocs (application/octet-stream)
File size limit exceeded (max. Dateigröße überschritten)


Versuchen Sie es in diesem Fall mit der nachfolgend beschriebenen dritten Methode.

III. DRITTE METHODE:

Überprüfen Sie zunächst, ob die Dump-Datei komprimiert ist oder nicht, und dekomprimieren Sie sie gegebenenfalls:

# file testdom.com_2006.11.13_11.27
testdom.com_2006.11.13_11.27: gzip compressed data, from Unix

# zcat testdom.com_2006.11.13_11.27 > testdom.com_dump


Die Dump-Datei besteht aus dem XML-Pfad, der den Inhalt der Datei beschreibt, und den Daten selbst. Jeder "Data Pie" kann über die entsprechende CID (Content ID) gefunden werden, die im XML-Pfad enthalten ist.

Bei einer Domain mit Hosting zum Beispiel werden alle im Hosting enthaltenen Pfade in etwa wie folgt aufgelistet:

    <phosting cid_ftpstat="testdom.com.ftpstat" cid_webstat="testdom.com.webstat" cid_docroot="testdom.com.htdocs" cid_private="testdom.com.private"
    cid_docroot_ssl="testdom.com.shtdocs" cid_webstat_ssl="testdom.com.webstat-ssl" cid_cgi="testdom.com.cgi" errdocs="true">

Wenn Sie den Ordner 'httpdocs' der Domain extrahieren müssen, sollten Sie nach dem Wert des Parameters 'cid_docroot' suchen, der in unserem Fall 'testdom.com.htdocs' lautet.

Schneiden Sie als nächstes den Inhalt von 'httpdocs' mithilfe der gefundenen CID aus der gesamten Dump-Datei heraus. Sie müssen hierfür die String-Nummern finden, die den Anfang und das Ende des von uns benötigten Inhalts kennzeichnen, wie im folgenden Beispiel:

# egrep -an '(^--_----------)|(testdom.com.shtdocs)' ./testdom.com_dump | grep -A1 "Content-Type"
2023:Content-Type: application/octet-stream; name="testdom.com.shtdocs"
3806:--_----------=_1163395694117660-----------------------------------------


Erhöhen Sie die erste Zeilennummer um 2, ziehen Sie von der zweiten Zeilennummer 1 ab und führen Sie folgenden Befehl aus:

head -n 3805  ./testdom.com_dump | tail +2025  > htdocs.tar


Als Ergebnis erhalten Sie das TAR-Archiv des Verzeichnisses 'httpdocs'.

Wenn Sie die Datenbank wiederherstellen müssen, ist die Vorgehensweise ähnlich. Sie müssen die XML-Beschreibung der Datenbanken für die benötigte Domain finden, wie in folgendem Beispiel:

        <database version="4.1" name="mytest22" cid="mytest22.mysql.sql" type="mysql">
          <db-server type="mysql">
            <host>localhost</host>
            <port>3306</port>
          </db-server>
        </database>

Suchen Sie den Datenbankinhalt anhand der CID:

# egrep -an '(^--_----------)|(mytest22.mysql.sql)' ./testdom.com_dump | grep -A1 "Content-Type"
1949:Content-Type: application/octet-stream; name="mytest22.mysql.sql"
1975:--_----------=_1163395694117660-----------------------------------------


Erhöhen Sie die erste Zeilennummer um 2, ziehen Sie von der zweiten Zeilennummer 1 ab und führen Sie folgenden Befehl aus:

head -n 1974  ./testdom.com_dump | tail +1951  > mytest22.sql


Als Ergebnis erhalten Sie die Datenbank im SQL-Format.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article
Save as PDF