Leider verwirren diese alle Links mehr, weil die Inhalte zu oberflächlich sind und zu viele Links auf Inhalte haben, die keinen Bezug aufweisen. Zur Übertragung von Daten habe ich folgende Schritte, wobei mir der Vorredner dabei wesentlich geholfen hat:
Quell- und Zielsystem updaten und rebooten: grommunio-update update && reboot
Neues System mit denselben Parametern einrichten wie das bisherige System. Keine Anlegungen von Daten.
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
Für Folgepunkte ggf. /root/.ssh/known_hosts umbenennen / löschen, wenn vorher Übertragungen an gleiche IP stattgefunden haben.
Nutzerdatenübertragung Q -> Z !!! entspricht Spiegelung, Verzeichnisinhalte im Ziel werden gelöscht !!!:
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /usr/local/share/ root@192.168.xxx.xxx:/usr/local/share/
CronDaily Übertragung Q -> Z !!! entspricht Spiegelung, Verzeichnisinhalte im Ziel werden gelöscht !!!:
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /etc/cron.daily/ root@192.168.xxx.xxx:/etc/cron.daily/
CronHourly Übertragung Q -> Z !!! entspricht Spiegelung, Verzeichnisinhalte im Ziel werden gelöscht !!!:
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /etc/cron.hourly/ root@192.168.xxx.xxx:/etc/cron.hourly/
Postfachübertragung Q -> Z !!! entspricht Spiegelung, Verzeichnisinhalte im Ziel werden gelöscht !!!:
rsync -aH -essh --delete --numeric-ids -P --stats --inplace /var/lib/gromox/ root@192.168.xxx.xxx:/var/lib/gromox/
Ordnerberechtigungen prüfen // gromox falsch konfiguriert
chown -Rf gromox:gromox /var/lib/gromox && chown -Rf grommunio:gromox /var/lib/gromox/user/* && chmod -Rf 0770 /var/lib/gromox && chmod -Rf 0775 /var/lib/gromox/domain/*
Import der MariaDB-Datenbank (nur Core):
mysql grommunio < /usr/local/share/grommunio.sql
mysql sys < /usr/local/share/sys.sql
Importuser prüfen /var/lib/gromox/user/x/y/: grommunio-admin user query username maildir auf beiden Systemen ausführen
Dienste starten auf beiden Systemen:
systemctl --all --output json list-units| jq '.[]|select(.unit|test("(grom.|nginx|.fpm).service")).unit' |xargs systemctl start && reboot
Bei den Übertragungen gehe ich von meinem Fall aus, daher je nach Bedarf.