Migrasi Data Zimbra
Memindahkan aplikasi Zimbra dari satu server ke server lain bisa dilakukan dengan 2 cara. Cara pertama adalah dengan memanfaatkan migration tools yang ada di Zimbra. Cara kedua adalah dengan menggunakan fitur backup dan restore. Pada kesempatan ini akan disampaikan dengan cara kedua.
Backup Data Zimbra
Pertama, backup dulu seluruh data zimbra dari sistem lama. Susun script backup seperti ini, berlaku di sistem operasi Ubuntu.
su zimbra mkdir /backup cd /backup vi migratescript
masukkan script tersebut di bawah ini:
#!/bin/bash mkdir zimbramigrate cd zimbramigrate echo "backup domain-admin-email-distributionlist" zmprov gad > domains.txt cat domains.txt zmprov gaaa > admins.txt cat admins.txt zmprov -l gaa > emails.txt cat emails.txt zmprov gadl > distributionlist.txt cat distributionlist.txt mkdir distributionlist_members for i in $(cat distributionlist_members); do zmprov gdlm $i > distributionlist_members/$i.txt; echo $i; done mkdir userpass for i in $(cat emails.txt); do zmprov -l ga $i userPassword | grep userPassword: | awk '{ print $2}' > userpass/$i.shadow ; echo $i ; done mkdir userdata for i in $(cat emails.txt); do zmprov ga $i | grep -i Name: > userdata/$i.txt; echo $i ; done echo "backup email" mkdir dataemail for i in $(cat emails.txt); do zmmailbox -z -m $i getRestURL '/?fmt=tgz' > dataemail/$i.tgz ; echo $i; done mkdir alias for i in $(cat emails.txt); do zmprov ga $i | grep zimbraMailAlias | awk '{print $2}' > alias/$i.txt ; echo $i ; done #hapus alias yang kosong find alias/ -type f -empty | xargs -n1 rm -v cd .. tar -czvf zimbramigrate.tar.gz zimbramigrate
lanjutkan dengan:
chmod +x migratescript ./migratescript
Tunggu sampai proses backup selesai.
Transfer Data ke Server Baru
Buat terlebih dahulu folder di server baru:
su zimbra mkdir /backup chmod 777 /backup
Dari server lama, kirim ke server baru menggunakan perintah sebagai berikut:
scp -C zimbramigrate.tar.gz username@serverbaru:/backup
username dan serverbaru agar disesuaikan dengan username dan alamat server baru yang digunakan.
Restore Data di server Baru
Restore nya dilakukan dengan menjalankan perintah sebagai berikut:
su zimbra cd /backup vi migraterestore
Isikan dengan ini:
tar -xzvf zimbramigrate.tar.gz cd zimbramigrate echo 'restore domain' for i in $(cat domains.txt) ; do zmprov cd $i zimbraAuthMech zimbra ;echo $i ;done ./accountrestore for i in $(cat emails.txt); do zmmailbox -z -m $i postRestURL "/?fmt=tgz&resolve=skip" dataemail/$i.tgz ; echo "$i -- finished "; done for i in $(cat distributionlist.txt); do zmprov cdl $i ; echo "$i -- done " ; done ./distrestore ./aliasrestore
Buatkan juga file pendukung sebagai berikut:
vi accountrestore
isinya adalah sebagai berikut:
#!/bin/bash #Scrit for creating the email accounts accountrestore USERPASS="userpass" USERDDATA="userdata" USERS="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
lanjutkan dengan membuat file pendukung distrestore:
vi distrestore
isinya sebagai berikut:
#!/bin/bash # add all members 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
kemudian file aliasrestore
#!/bin/bash for i in $(cat emails.txt) do if [ -f "alias/$i.txt" ]; then for j in `grep '@' alias/$i.txt` do zmprov aaa $i $j echo "$i HAS ALIAS $j --- Restored" done fi done
Sebelum menjalankannya, perlu diberikan akses eksekusi terhadap file-file tersebut dengan perintah:
chmod +x aliasrestore accountrestore distrestore migraterestore
baru kemudian jalankan proses migrasi:
./migraterestore
Referensi
Sumber informasi:
Zimbra Server Migration and Zimbra Account Transfer – The Perfect Method
Zimbra Open Source backup tools