Postfächer migrieren / Kernfunktionalitäten in das neue System migrieren / keine Inhalte der Optionsmodule
Ich verwende diesen Weg, indem ich eine zweite, die neue Installation aufbaue, ich verwende grundsätzlich die ISO, und indem ich diese soweit mit Core und ggf. Optionsmodulen über den Setup-Wizard einrichte, wie diese später laufen soll. Ansonsten ab hier keine (!) Daten über die Admin-GUI hinterlegen, da diese durch die Datenübertragung gespeichert werden. Das einzige in der Admin-GUI ist ein "UPGRADE" in den Settings und dann Rebooten

Das Quellsystem sollte auch Up-to-Date sein, sodass beide Installationen identisch sind. Dann Schritt für Schritt:
Dienste beenden auf beiden Systemen:
systemctl --all --output json list-units| jq '.[]|select(.unit|test("(^grom.*|nginx|.*fpm).service")).unit' |xargs systemctl stop
Export der MariaDB-Datenbank:
mysql --execute="SHOW DATABASES" --skip-column-names --batch |grep -Ev '^(mysql|(performance|information)_schema)$' |while read -r DB; do mysqldump --single-transaction --routines --triggers --events --add-drop-database $DB > /usr/local/share/$DB.sql ; done
Nutzerdatenübertragung (Neuinstallation, Empfänger IP 192.xxx.xxx.xxx):
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /usr/local/share/ root@192.xxx.xxx.xxx:/usr/local/share/
Postfachübertragung:
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /var/lib/gromox/ root@192.xxx.xxx.xxx:/var/lib/gromox/
Im Neusystem Ordnerberechtigungen berichtigen: Regulär könnte folgendes Kommando über die Konsole verwendet werden, jedoch werden durch die Datenübertragungen ggf. die Ordnerrechte so verändert, dass es unwirksam ist:
chown -Rf grommunio:gromox /var/lib/gromox/user//
Daher passe ich in der Regel die Rechte in WinSCP / PuTTY an, wie folgt
/var/lib/gromox/user **bis** zum Unterordner -> gromox:gromox Octal 0770 rekursiv
/var/lib/gromox/user **ab** da alle Unterordner -> groweb:gromox Octal 0770 rekursiv
Import der MariaDB-Datenbank, (bei mir) nur Core, keine Optionsmodule:
mysql grommunio < /usr/local/share/grommunio.sql
mysql sys < /usr/local/share/sys.sql
Importuser prüfen / anpassen /var/lib/gromox/user/x/y/ damit diese verglichen werden können:
grommunio-admin user query username maildir
Dienste starten auf beiden Systemen:
systemctl --all --output json list-units| jq '.[]|select(.unit|test("(^grom.*|nginx|.*fpm).service")).unit' |xargs systemctl start && reboot
Damit sollten dann alle Postfächer übertragen sein, dann kann der Rest angepasst werden, sofern erforderlich. Sollen noch weitere Daten von den Optionsmodulen übertragen werden, ebenso die entsprechenden Verzeichnisse /var/lib/.... übertragen und Datenbanken rücksichern. Bei der Übertragung sind auch evtl. selbst angelegte Crons in z.B. /etc/cron.daily usw. zu berücksichtigen.