catatanlepas.com

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color
Home Komputer Pemrograman Skrip Untuk Membackup dan Merestore Akun Dan Password di Zimbra

Skrip Untuk Membackup dan Merestore Akun Dan Password di Zimbra

Email Cetak PDF
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 '############################################################'
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


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.sh
Kemudian 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

+ 1
+ 0
Comments
Add New Search
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Terakhir Diperbaharui ( Selasa, 13 September 2011 15:55 )  

Tanggal dan Jam


Ulti Clocks content

Browse this website in:


Mutiara Hari Ini

Kalau sekiranya kami menurunkan Al-Quran ini kepada sebuah gunung, pasti kamu akan melihatnya tunduk terpecah belah disebabkan takut kepada Allah. Dan perumpamaan-perumpamaan itu kami buat untuk manusia supaya mereka berfikir. (Al-Hasyr:21)

Poling

Apakah artikel-artikel di situs ini bermanfaat untuk anda?

(283 votes)

7.8%
92.2%

Waktu Shalat