Problem:
Symptome dazu gibt es verschiedene. Es kommt einfach drauf an, wo man mit der Suche beginnt.
Z.B. endet eine Migration im Plesk mit der Meldung:
Error: pmm utility 'migration_handler' raised an exception. Error code is: 1
Im dazugehörigen /usr/local/psa/PMM/logs/pmmcli.log
finden sich auch folgende Zeilen:
11218: 2010-XX-XX hh:mm:ss,605 INFO Executing11218: 2010-XX-XX hh:mm:ss,774 INFO Subprocess raised ExecuteException: Subprocess was finished with exit code 1 ... CRITICAL PMMUtility exception: Subprocess was finished with exit code 1 ... Runtime error in migration handler: <class 'subproc.NonzeroExitException'> was finished with exit code 2 Traceback (most recent call last): ... File "/usr/local/psa/admin/share/pmmcli/pmmcli.py", line 1846, in main data_action_response, errcode_response, error_message = actions.get(sys.argv[1][2:])(parameters)
Da das Logfile als Traceback geschrieben wird, ist in dem Falle der erste Fehler der Ausschlaggebende:
.../migration-handler --migration-get-objects-list ... was finished with exit code 1
Diagnose
Erst wenn man die Schritte des PMM selber mit der Hand nachvollzieht, kommt man auf den Hintergrund. Daher machen wir das jetzt mal: (vom Zielhost aus!!!)
ssh root@ALTER-HOST mkdir temporary_migration_directory scp -r /usr/local/psa/PMM/agents/shared/* /usr/local/psa/PMM/agents/PleskX/* root@ALTER-HOST:/temporary_migration_directory/
Wenn hier bereits Probleme auftreten, dann müssen die behoben werden. (Z.B. wenn kein direktes Login für root
erlaubt ist.)
Nun wechseln wir auf den (alten) Quellhost und machen dort weiter:
cd /temporary_migration_directory
chmod 755 PleskX.pl
./PleskX.pl --dump-all --no-content
Hier kommt am Ende dann eine Fehlermeldung, die wirklich mal was Aussagt.
Häufigstes Problem: Auf der root-Partition ist zu wenig Speicherplatz.
Lösungen:
Im Falle von "zu wenig Speicherplatz" verschieben wir das temporary_migration_directory
auf eine Partition mit ausreichend Kapazität und setzten einen Symlink auf den ursprünglichen Ort:
mv /temporary_migration_directory /var/. ln -s /var/temporary_migration_directory /.
Da der PMM dieses Verzeichnis nach jedem Migrations(-Versuch) wieder löscht, muss dies jedes Mal wiederholt werden.
Allerdings kann man sich diese Mühe auch sparen. Denn mit einem erfolgreichen Durchlauf von:
./PleskX.pl --dump-all
erhält man alles was man braucht. Im Verzeichnis clients
wird man fündig. Wir erstellen auf dem Zielhost ein neues Verzeichnis (z.B. /dumps
) und kopieren alles nötige dort hin:
ssh root@NEUER-HOST mkdir /dumps ssh root@NEUER-HOST mkdir /dumps/archives scp dump.xml root@NEUER-HOST:/dumps/. scp -r clients/* root@NEUER-HOST:/dumps/archives/.
Nun kann im Plesk-Panel neue Migration gestartet werden. Nur diesmal als "Datenimport". Als Verzeichnis wird /dumps/
angegeben.
Hinweis
Wer nur eine Domain übernehmen möchte, kann dies ebenfalls auf diese Weise machen. Als Parameter für PleskX
reicht dann:
./PleskX.pl --dump-domains=DOMAIN.TLD