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