Script untuk Export Account Zimbra

Migrasi Server, Tips, Tricks & Tutorial1 Comment

Hari Jum’at akhir pekan lalu saya menuliskan tutorial backup dan restore Zimbra, termasuk export-import account dan mailbox. Ada beberapa rekan yang confused dengan penjelasan saya mengenai proses export account. Pada artikel itu, saya mengambil cara mudah dalam melakukan export daftar account yaitu dengan perintah sederhana :

[code language=’cpp’]
su – zimbra
zmprov gaa > /home/vavai/daftar-account-zimbra.csv
[/code]

Cara diatas memang secara otomatis mengekspor semua daftar account Zimbra dari sistem Zimbra yang sedang berjalan, namun memiliki 2 kelemahan mendasar yaitu :

  1. Untuk keperluan bulk provision melalui menu Admin Zimbra, file hasil export harus memenuhi syarat minimal 3 kolom yaitu email address, display name dan password. Untuk mengatasinya, kita harus memodifikasi file csv untuk mengisi kolom kedua dan ketiga
  2. Hasil import melalui bulk provision akan secara otomatis menandai semua account untuk “Change Password on Initial Login”, jadi password tidak bisa digunakan

Untuk menghindari 2 hal diatas, pagi ini saya membuatkan script otomatis untuk melakukan export account Zimbra yang bisa langsung dipergunakan tanpa melakukan proses edit secara manual. Password yang dimasukkan juga akan secara otomatis tersimpan sebagai password permanen.

SCRIPT EXPORT ACCOUNT ZIMBRA

Bisa di download disini.

[code language=’cpp’]
#!/bin/sh

#Hapus Layar
clear

echo -e “###################################################################################”
echo -e “# Zimbra exportaccountzcs.sh ver 0.0.1 #”
echo -e “# Skrip untuk export account Zimbra menjadi file zmp #”
echo -e “# Masim ‘Vavai’ Sugianto – vavai@vavai.com – http://www.vavai.com #”
echo -e “# Untuk saran dan pertanyaan silakan menggunakan Milis Komunitas Zimbra Indonesia #”
echo -e “# Link Komunitas : http://www.zimbra.web.id – http://www.opensuse.or.id #”
echo -e “###################################################################################”

# /* Variable untuk bold */
ibold=”\033[1m””\n===> ”
ebold=”\033[0m”

# /* Parameter */
echo "”
echo -n "Enter Domain Name (ex : vavai.com) : ”
read NAMA_DOMAIN
echo -n "Enter path folder and file name for exported account (ex : /home/vavai/zcsacc) : ”
read FILE

# /* Membuat file hasil export dan mengisi nama domain */
NAMA_FILE=”$FILE.zmp”
touch $NAMA_FILE
echo "createDomain $NAMA_DOMAIN” > $NAMA_FILE

# /* Check versi Zimbra yang digunakan */
VERSION=`su – zimbra -c ‘zmcontrol -v’`;
ZCS_VER=”/tmp/zcsver.txt”

touch $ZCS_VER
echo $VERSION > $ZCS_VER

echo -n "Zimbra Version : $VERSION”;
echo -e $ibold”Retrieve Zimbra User…………………………”$ebold

grep "Release 5.” $ZCS_VER
if [ $? = 0 ]; then
USERS=`su – zimbra -c ‘zmprov gaa’`;
fi

grep “Release 6.” $ZCS_VER
if [ $? = 0 ]; [ $? = 0 ]SERS=`su – zimbra -c ‘zmprov -l gaa’`;
fi

# /* Proses insert account kedalam file hasil export */
for ACCOUNT in $USERS; do
NAME=`echo $ACCOUNT`;
DOMAIN=`echo $ACCOUNT | awk -F@ ‘{print $2}’`;
ACCOUNT=`echo $ACCOUNT | awk -F@ ‘{print $1}’`;

if [ $NAMA_DOMA[ $NAMA_DOMAIN == $DOMAIN ]br> echo “createAccount $NAME $ACCOUNT displayName ‘$ACCOUNT’ givenName $ACCOUNT sn $DOMAIN zimbraPasswordMustChange FALSE” >> $NAMA_FILE
echo “Adding account $NAME”
else
echo “Skipping account $NAME”
fi

done
echo “All account has been exported sucessfully into $NAMA_FILE”
echo “You may import the file into new Zimbra server with the following command :”
echo “”
echo -e $ibold”with Zimbra user”$ebold
echo “su – zimbra”
echo “zmprov CARA MENGGUNAKAN
[code langua[code language=’cpp’]cd /opt
wget -c http://www.vavai.com/wp-content/uploads/exportacczcs.sh
chmod +x exportacczcs.sh
./exportacczcs.sh
[/code]
[/code]>CATATAN

Ada beberapa catatan penting terkait dengan penggunaan script ini, antara lain :

  1. Untuk kesederhanaan, saya menggunakan user name sebagai password dan display name. Jika ingin menggunakan password standar untuk semua user, silakan ubah script bagian berikut :
    [code langua[code language=’cpp’]createAccount $NAME $ACCOUNT displayName ‘$ACCOUNT’ givenName $ACCOUNT sn $DOMAIN zimbraPasswordMustChange FALSE” >> $NAMA_FILE
    [/code]
    [/code]
    [code langua[code language=’cpp’]createAccount $NAME passwordstandar displayName ‘$ACCOUNT’ givenName $ACCOUNT sn $DOMAIN zimbraPasswordMustChange FALSE” >> $NAMA_FILE
    [/code]
    [/code]an mencoba memperbaiki scriptnya untuk bisa mengambil password yang tersimpan pada account Zimbra. Pilihan lainnya adalah menggunakan perintah ldap untuk mengambil password yang ada, namun saat ini saya belum sempat melakukan eksplorasi lebih jauh
  2. Script ini akan menanyakan 2 parameter yaitu nama domain yang accountnya akan diexport dan lokasi penyimpanan file zmp yang hendak dibuat. Meski demikian, saya sudah mengujicoba script ini untuk berjalan pada posisi multi domain. Script ini hanya akan mengekspor account yang ada pada domain yang diinginkan.

Bagi rekan-rekan yang menemukan bug atau punya tips lain untuk meningkatkan kemampuan script ini silakan menyampaikannya melalui halaman komentar.

About the author:

Masim Vavai Sugianto, Tinggal di Bekasi, Bekerja sebagai wirausahawan/Konsultan IT. Penganjur penggunaan sistem Linux dan aplikasi Open Source. Hobby Membaca, Hiking dan Avonturir. Mengembangkan PT. Excellent Infotama Kreasindo sebagai lembaga training dan IT consulting.

One thought to “Script untuk Export Account Zimbra”

  1. Mas,
    Kalau ldapnya diexport ke ldif file khan kita dapat password yang sudah di-hash. Nah pertanyaannya apakah hash passowrd tersebut dapat langsung digunakan pada csv file sehingga users kita tidak perlu mengganti passwordnya pada saat initial login.

    Terima kasih sebelumnya

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Top