ກ່ອນຈະທຳການໂອຍຍ້າຍບັນຊີອີເມວໃນ Zimbra Mail ສິ່ງທີ່ຕ້ອງການເບື້ອງຕົ້ນ:
ເບື້ອງເຊີເວີເກົ່າ:
- ຕ້ອງການ ssh ແລະ ລັອກອິນຜ່ານຜູ້ໃຊ້ root
- ຕ້ອງການ zimbra admin logins
- ສຳຄັນຕ້ອງມີເນື້ອທີ່ພໍການໃນການສຳຮອງຄັ້ງນີ້
ເບື້ອງເຊີເວີໃໝ່:
- ຕ້ອງຕິດຕັ້ງ Zimbra Mail ເວີຊັນຫຼ້າສູດ
- ຕ້ອງການ ssh ແລະ ລັອກອິນຜ່ານຜູ້ໃຊ້ root
- ຕ້ອງການ zimbra admin logins
- ສຳຄັນຕ້ອງມີເນື້ອທີ່ພໍການໃນການຕິດຕັ້ງ
1. ສ້າງໂຟນເດີ ກຽມໃນການສຳຮອງ
[root@zimbra ~]# mkdir /backups/zmigrate [root@zimbra ~]# chown zimbra.zimbra /backups/zmigrate [root@zimbra ~]# su - zimbra
2. ສຳຮອງຂໍ້ມູນທັງໝົດຈາກເຊິເວີເກົ່າ
2.1 ຂັ້ນຕອນນີ້ ແມ່ນ ຊອກຫາບັນດາໂດເມນທັງໝົດ
zimbra@zimbra:~$ cd /backups/zmigrate zimbra@zimbra:/backups/zmigrate$ zmprov gad > domains.txt zimbra@zimbra:/backups/zmigrate$ cat domains.txt fun.com myserver.com justfortest.com checkit.com dieanotherday.com gnutest.com foo.com zimbra.foo.com zimbra@zimbra:/backups/zmigrate$
2.2 ຄົ້ນຫາບັນຊີ Admin ບັນທຶກໄວ້ admins.txt
zimbra@zimbra:/backups/zmigrate$ zmprov gaaa > admins.txt zimbra@zimbra:/backups/zmigrate$ cat admins.txt [email protected] zimbra@zimbra:/backups/zmigrate
2.3 ຄົ້ນຫາທຸກບັນຊີ ບັນທຶກໄວ້ emails.txt
zimbra@zimbra:/backups/zmigrate$ zmprov -l gaa >emails.txt zimbra@zimbra:/backups/zmigrate$ cat emails.txt [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] zimbra@zimbra:/backups/zmigrate$
2.4 Get all distribution lists ບັນທຶກໃສ່ distributinlist.txt
zimbra@zimbra:~$ zmprov gadl > /backups/zmigrate/distributinlist.txt zimbra@zimbra:~$ cat /backups/zmigrate/distributinlist.txt [email protected] [email protected] [email protected] [email protected] [email protected] zimbra@zimbra:~$
2.5 Get all members in distribution lists
zimbra@zimbra:~$ mkdir /backups/zmigrate/distributinlist_members zimbra@zimbra:~$ for i in `cat /backups/zmigrate/distributinlist.txt`; do zmprov gdlm $i > /backups/zmigrate/distributinlist_members/$i.txt ;echo "$i"; done [email protected] [email protected] [email protected]
2.6 Find all email account’s passwords
zimbra@zimbra:/backups/zmigrate$ mkdir userpass zimbra@zimbra:/backups/zmigrate$ for i in `cat emails.txt`; do zmprov -l ga $i userPassword | grep userPassword: | awk '{ print $2}' > userpass/$i.shadow; done
2.7 Backup all user names , Display names and Given Names
zimbra@zimbra:/backups/zmigrate$ mkdir userdata zimbra@zimbra:/backups/zmigrate$ for i in `cat emails.txt`; do zmprov ga $i | grep -i Name: > userdata/$i.txt ; done
2.8 Now backup all email account
zimbra@zimbra:/backups/zmigrate$ for email in `cat /backups/zmigrate/emails.txt`; do zmmailbox -z -m $email getRestURL '/?fmt=tgz' > $email.tgz ; echo $email ; done [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
2.9 Now backup alias
zimbra@zimbra:/backups/zmigrate$ mkdir -p alias/ zimbra@zimbra:/backups/zmigrate$ for i in `cat emails.txt`; do zmprov ga $i | grep zimbraMailAlias |awk '{print $2}' > alias/$i.txt ;echo $i ;done [email protected] [email protected]
3. Restore in new server
[root@zimbra ~]# su - zimbra [zimbra@zimbra]$
3.1 Restore all domains
[zimbra@zimbra zmigrate]$ for i in `cat /backups/zmigrate/domains.txt `; do zmprov cd $i zimbraAuthMech zimbra ;echo $i ;done 2c86f244-de9d-4b7c-8e22-2246a8256219 myserver.com dbf75058-d85e-4d60-8b69-1f148a456eb6 justfortest.com ee90ffa2-505d-449f-82fd-129acb21cb5e checkit.com 8b6bf287-f61e-4930-ada0-96b817292556 dieanotherday.com 17d3c73c-14f7-43aa-9fd2-c9be9e29c9e5
3.2 Create email accounts and set the old password
ສ້າງສະຄຣິບໄຟລ
#!/bin/bash #Scrit for creating the email accounts createacct.sh USERPASS="/backups/zmigrate/userpass" USERDDATA="/backups/zmigrate/userdata" USERS="/backups/zmigrate/emails.txt" for i in `cat $USERS` do givenName=$(grep givenName: $USERDDATA/$i.txt | cut -d ":" -f2) displayName=$(grep displayName: $USERDDATA/$i.txt | cut -d ":" -f2) shadowpass=$(cat $USERPASS/$i.shadow) tmpPass="CHANGEme" zmprov ca $i CHANGEme cn "$givenName" displayName "$displayName" givenName "$givenName" zmprov ma $i userPassword "$shadowpass" done
3.3 Restore email accounts
[zimbra@zimbra zmigrate]$ for i in `cat /backups/zmigrate/emails.txt`; do zmmailbox -z -m $i postRestURL "/?fmt=tgz&resolve=skip" /backups/zmigrate/$i.tgz ; echo "$i -- finished "; done [email protected] -- finished [email protected] -- finished
3.4 Now recreate the distribution lists
[zimbra@zimbra zmigrate]$ for i in `cat distributinlist.txt`; do zmprov cdl $i ; echo "$i -- done " ; done 2a852fd8-6e66-426e-a76d-15192536042a [email protected] -- done a0f6ddb3-8525-4194-9397-6cf0a920dda6
3.5 Restore the distribution lists
ສ້າງໄຟລສະຄຣິບ
[zimbra@zimbra zmigrate]$ cat restoredist.sh #!/bin/bash # add all memebers to each of these distribution lists for i in `cat distributinlist.txt` do for j in `grep -v '#' distributinlist_members/$i.txt |grep '@'` do zmprov adlm $i $j echo " $j member has been added to list $i" done done
3.6 Restore Alias accounts
ສ້າງໄຟລສະຄຣິບ
#!/bin/bash for i in `cat /backups/zmigrate/emails.txt` do if [ -f "alias/$i.txt" ]; then for j in `grep '@' /backups/zmigrate/alias/$i.txt` do zmprov aaa $i $j echo "$i HAS ALIAS $j --- Restored" done fi done
src:https://syslint.com/blog/tutorial/zimbra-server-migration-and-zimbra-account-transfer-the-perfect-method/
[tag]Mail Server, Zimbra, Mail[/tag]