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