Pada artikel sebelumnya, sudah dijelaskan tentang bagaimana cara membackup dan merestore mailbox di zimbra. Artikel kali ini akan menjelaskan tentang backup akun seluruh user beserta passwordnya. Zimbra mempunyai banyak kelebihan dibandingkan dengan mail server lainnya. Diantaranya adalah zimbra dapat membackup dan merestore akun dan password para user dengan mudah. A. Backup Akun dan Password
Setelah masuk di server zimbra, buka folder /tmp dan buat file dengan nama export.sh di dalamnya. Isi file tersebut dengan skrip di bawah ini:
#!/bin/sh
#Hapus Layar
clear
echo -e "##########################################################"
echo -e "# Zimbra export-acc-zcs.sh ver 0.0.2 #"
echo -e "# Skrip untuk export account Zimbra berikut profile dan password #"
echo -e "# Masim 'Vavai' Sugianto - This e-mail address is being protected from spambots, you need JavaScript enabled to view it - 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 for exported account (ex : /home/vavai/) : "
read FOLDER
# /* Membuat file hasil export dan mengisi nama domain */
NAMA_FILE="$FOLDER/zcs-acc-add.zmp"
LDIF_FILE="$FOLDER/zcs-acc-mod.ldif"
rm -f $NAMA_FILE
rm -f $LDIF_FILE
touch $NAMA_FILE
touch $LDIF_FILE
echo "createDomain $NAMA_DOMAIN" > $NAMA_FILE
# /* Check versi Zimbra yang digunakan */
VERSION=`su - zimbra -c 'zmcontrol -v'`;
ZCS_VER="/tmp/zcsver.txt"
# get Zimbra LDAP password
ZIMBRA_LDAP_PASSWORD=`su - zimbra -c "zmlocalconfig -s zimbra_ldap_password | cut -d ' ' -f3"`
touch $ZCS_VER
echo $VERSION > $ZCS_VER
echo -e $ibold"Retrieve Zimbra User.............................."$ebold
grep "Release 5." $ZCS_VER
if [ $? = 0 ]; then
USERS=`su - zimbra -c 'zmprov gaa'`;
LDAP_MASTER_URL=`su - zimbra -c "zmlocalconfig -s ldap_master_url | cut -d ' ' -f3"`
fi
grep "Release 6." $ZCS_VER
if [ $? = 0 ]; then
USERS=`su - zimbra -c 'zmprov -l gaa'`;
LDAP_MASTER_URL="ldapi:///"
fi
grep "Release 7." $ZCS_VER
if [ $? = 0 ]; then
USERS=`su - zimbra -c 'zmprov -l gaa'`;
LDAP_MASTER_URL="ldapi:///"
fi
echo -e $ibold"Processing account, please wait.............................."$ebold
# /* 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}'`;
ACC=`echo $ACCOUNT | cut -d '.' -f1`
if [ $NAMA_DOMAIN == $DOMAIN ] ;
then
OBJECT="(&(objectClass=zimbraAccount)(mail=$NAME))"
dn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep dn:`
displayName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep displayName: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`
givenName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep givenName: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`
userPassword=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep userPassword: | cut -d ':' -f3 | sed 's/^ *//g' | sed 's/ *$//g'`
cn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep cn: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`
initials=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep initials: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`
sn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D \
uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep sn: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`
if [ $ACC == "admin" ] || [ $ACC == "wiki" ] || [ $ACC == "galsync" ] || [ $ACC == "ham" ] || [ $ACC == "spam" ]; then
echo "Skipping system account, $NAME..."
else
echo "createAccount $NAME passwordtemp displayName '$displayName' givenName '$givenName' sn '$sn' initials '$initials' zimbraPasswordMustChange FALSE" >> $NAMA_FILE
echo "$dn
changetype: modify
replace: userPassword
userPassword:: $userPassword
" >> $LDIF_FILE
echo "Adding account $NAME"
fi
else
echo "Skipping account $NAME"
fi
done
echo -e $ibold"All account has been exported sucessfully into $NAMA_FILE and $LDIF_FILE..."$ebold
Setelah itu rubah file tersebut dengan mode eksekusi dengan cara:
# chmod +x /tmp/export.sh
Kemudian untuk menjalankan file tersebut, gunakan perintah:
# ./export.sh
maka akan ada layar dan kita disuruh untuk menjawab 2 pertanyaan yaitu domain apa yang akan di backup dan dimana domain itu akan disimpan. Setelah itu file tersebut akan membackup seluruh akun dan password pada domain tersebut. Jika berhasil membackup, file tersebut akan menghasilkan 2 file yaitu zcs-acc-add.zmp dan zcs-acc-mod.ldif pada folder yang telah kita tentukan sebelumnya. Perlu diketahui, bahwa file ini hanya bisa membackup satu domain saja. Jadi jika kita mempunyai lebih dari satu domain pada server zimbra misalnya 3 domain, maka kita harus menjalankan 3x file ini dengan mengisikan nama domain yang berbeda. Dengan demikian backup akun dan password sudah berhasil kita lakukan.
B. Restore Akun dan Password
Sesudah berhasil kita mem-backup akun dan password seluruh user di zimbra, maka tiba saatnya untuk merestore akun dan password tersebut. Buka folder /tmp dan buat file import.sh dan masukkan skrip ini.
#!/bin/sh
#Hapus Layar
clear
echo -e '# Skrip untuk import data account Zimbra #'
echo -e '# Masim 'Vavai' Sugianto - This e-mail address is being protected from spambots, you need JavaScript enabled to view it - 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 #'
Kemudian beri mode eksekusi pada file import.sh. Setelah itu masukkan file backup yang berjumlah 2 itu ke dalam folder /tmp dan rubah kepemilikan user dan group kedua file tersebut menjadi zimbra dengan cara:
B. Restore Akun dan Password
Sesudah berhasil kita mem-backup akun dan password seluruh user di zimbra, maka tiba saatnya untuk merestore akun dan password tersebut. Buka folder /tmp dan buat file import.sh dan masukkan skrip ini.
#!/bin/sh
#Hapus Layar
clear
echo -e '############################################################'
echo -e '# Zimbra import-zcs-acc.sh ver 0.0.1 #'echo -e '# Skrip untuk import data account Zimbra #'
echo -e '# Masim 'Vavai' Sugianto - This e-mail address is being protected from spambots, you need JavaScript enabled to view it - 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"
if [ "$USER" != "zimbra" ]
then
echo -e $ibold"You need to be user zimbra to run this script..."$ebold
exit
fi
CURRENT_FOLDER=`pwd`;
echo ""
echo -e "Please verify that you have copied zcs-acc-add.zmp & zcs-acc-mod.ldif on current folder !"
echo -e "Current Folder : $CURRENT_FOLDER, Please change to your folder before running this script."
echo -e "Press ENTER to continue..."
read jawab
if [ -f ./zcs-acc-add.zmp ];
then
if [ -f ./zcs-acc-add.zmp ];
then
echo -e $ibold"Importing account..."$ebold
ZIMBRA_LDAP_PASSWORD=`zmlocalconfig -s zimbra_ldap_password | cut -d ' ' -f3`
# cat ./zcs-acc-add.zmp | su - zimbra -c zmprov
zmprov < $CURRENT_FOLDER/zcs-acc-add.zmp
echo -e $ibold"Modify password..."$ebold
ldapmodify -f "$CURRENT_FOLDER/zcs-acc-mod.ldif" -x -H ldapi:/// -D cn=config -w $ZIMBRA_LDAP_PASSWORD
# su - zimbra -c '$LDAP_CMD'
echo -e $ibold"Zimbra account has been modified sucessfully ..."$ebold
else
echo "Sorry, file $CURRENT_FOLDER/zcs-acc-mod.ldif does not exists, import process will not be continue..."
exit
fi
else
echo "Sorry, file $CURRENT_FOLDER/zcs-acc-add.zmp does not exists, import process will not be continue..."
exit
fi
# /* Variable untuk bold */
ibold="\033[1m""\n===> "
ebold="\033[0m"
if [ "$USER" != "zimbra" ]
then
echo -e $ibold"You need to be user zimbra to run this script..."$ebold
exit
fi
CURRENT_FOLDER=`pwd`;
echo ""
echo -e "Please verify that you have copied zcs-acc-add.zmp & zcs-acc-mod.ldif on current folder !"
echo -e "Current Folder : $CURRENT_FOLDER, Please change to your folder before running this script."
echo -e "Press ENTER to continue..."
read jawab
if [ -f ./zcs-acc-add.zmp ];
then
if [ -f ./zcs-acc-add.zmp ];
then
echo -e $ibold"Importing account..."$ebold
ZIMBRA_LDAP_PASSWORD=`zmlocalconfig -s zimbra_ldap_password | cut -d ' ' -f3`
# cat ./zcs-acc-add.zmp | su - zimbra -c zmprov
zmprov < $CURRENT_FOLDER/zcs-acc-add.zmp
echo -e $ibold"Modify password..."$ebold
ldapmodify -f "$CURRENT_FOLDER/zcs-acc-mod.ldif" -x -H ldapi:/// -D cn=config -w $ZIMBRA_LDAP_PASSWORD
# su - zimbra -c '$LDAP_CMD'
echo -e $ibold"Zimbra account has been modified sucessfully ..."$ebold
else
echo "Sorry, file $CURRENT_FOLDER/zcs-acc-mod.ldif does not exists, import process will not be continue..."
exit
fi
else
echo "Sorry, file $CURRENT_FOLDER/zcs-acc-add.zmp does not exists, import process will not be continue..."
exit
fi
Kemudian beri mode eksekusi pada file import.sh. Setelah itu masukkan file backup yang berjumlah 2 itu ke dalam folder /tmp dan rubah kepemilikan user dan group kedua file tersebut menjadi zimbra dengan cara:
# chown zimbra:zimbra cs-acc-add.zmp zcs-acc-mod.ldif
Untuk menjalankan file import.sh, kita harus menjadi user zimbra terlebih dahulu kemudian ikuti langkah-langkah berikut ini:
# su - zimbra # cd /tmp # ./import.shKemudian ceklah di admin zimbra apakah user dan password seluruh user sudah terestore semua? Jika sudah, maka proses restore sudah berjalan dengan sempurna.
Referensi:
14 Ramadhan 1432 H
14 Agustus 2011 M
14 Agustus 2011 M
| Comments |
|
Powered by !JoomlaComment 3.26














Dear Accank, Hal itu tergantung dari...
Dear Ronald, Terima kasih atas saran...
Untuk pengguna debian 6.0 (squeeze) d...
mas sy ingin bertanya,dari semua netw...
Dear Syukran, Mungkin hadits ini bis...