Зіткнувся з завданням - необхідно перенести один з доменів на інший хост, думаю ок. Погуглити, знайшов стандартні костилі типу zmmboxmove, все з коробки, але виявляється дане рішення є тільки в платній версії.
Почав дивитися далі, знайшов міграцію за допомогою вбудованого механізму, але там губляться паролі користувачів, що мінус, так як треба генерувати нові, а це стрес для користувачів.
В результаті було вирішено створити аналогічних користувачів або перемістити за допомогою вбудованого механізму, а далі перенести хеші паролів. Знайшщов скріпти, і ось що з цього вийшло. Насамперед необхідно отримати список акаунтів, які ми хочемо перенести:
mkdir /tmp/zimbra
cd /tmp/zimbra
zmprov -l gaa pc-service.cv.ua | grep -v Ця електронна адреса захищена від спам-ботів. Вам необхідно увімкнути JavaScript, щоб побачити її. > users.txt
Далі нам необхідно отримати хеші pass.sh
#!/bin/bash cat users.txt | while read line do array[i]="$line" zmprov -l ga ${array[i]} userPassword | sed s/#\ name/zmprov\ ma/ | tr '\n' ' ' | sed s/:\ /\ \'/ | sed s/\ \ /\',/ | tr ',' '\n' >> /tmp/zimbra/restore_pass.sh let i++ done
Після цього у нас є файл з командами, які встановлюють старі-нові хеші.
експортуємо ящики
export.sh
#!/bin/bash cat users.txt | while read line do array[i]="$line" zmmailbox -z -m ${array[i]} -t 0 getRestURL "//?fmt=tgz" > /tmp/zimbra/${array[i]}.tar.gz let i++ done
Встановлюємо права на каталог
chmod -R 777 /tmp/zimbra/
Закачуємо все що вийшло на новий сервер і починаємо імпортування скриньок
import.sh
#!/bin/bash cat users.txt | while read line do array[i]="$line" zmprov ca ${array[i]} ZmHpg0LeQSPNZE0c zmmailbox -z -m ${array[i]} -t 0 postRestURL "//?fmt=tgz&resolve=reset" /tmp/zimbra/${array[i]}.tar.gz let i++ done
У цьому кроці ми створюємо скриньки і відразу імпортуємо в них вміст, ну а далі просто залишається встановити хеши за допомогою restore_pass.sh
Корисне: