Tadi pagi salah satu klien menghubungi saya, menanyakan apakah memungkinkan jika status account di Zimbra dipisahkan kedalam listing tertentu. Pemisahan ini digunakan untuk memastikan bahwa account-account yang statusnya tidak aktif (status : Locked, Closed & Maintenance) bisa dilisting untuk kemudian ditandai di mesin yang baru.
Secara prinsip, dengan membaca script yang ada, kita bisa juga melakukan modifikasi agar scriptnya diperluas untuk field-field/kolom identitas lainnya.
Setelah oprek sedikit, berikut adalah scriptnya.
#/bin/sh #Hapus Layar clear echo -e "############################################################################" echo -e "# Zimbra check account status #" echo -e "# Skrip untuk memisahkan account Zimbra yang inactive (locked/closed) #" echo -e "# Masim 'Vavai' Sugianto - vavai@vavai.com - https://www.vavai.com #" echo -e "# Link Website : http://www.excellent.co.id #" echo -e "############################################################################" echo "Proses pengecekan dimulai..."; # /* Variable untuk bold */ ibold="\033[1m""\n===> " ebold="\033[0m" # /* Membuat file hasil pengecekan */ NAMA_FILE="zimbra-acc-status.txt" rm -f $NAMA_FILE touch $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"Memanggil daftar seluruh account Zimbra.............................."$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 echo -e $ibold"Melakukan proses data, silakan tunggu.............................."$ebold # /* Proses insert account kedalam file hasil export */ for ACCOUNT in $USERS; do NAME=`echo $ACCOUNT`; ACCOUNT=`echo $ACCOUNT | awk -F@ '{print $1}'`; OBJECT="(&(objectClass=zimbraAccount)(mail=$NAME))" STATUS=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep zimbraAccountStatus: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'` if [ $STATUS != "active" ]; then echo "$NAME status : $STATUS" >> $NAMA_FILE echo "Menambahkan account $NAME ke daftar account, status : $STATUS" fi done echo -e $ibold"Selesai melakukan proses pengecekan status account"$ebold
Script diatas memang hanya melisting daftar account yang statusnya tidak aktif. Untuk mengupdate-nya ke sistem yang baru bisa juga membuat script dengan menjalankan perintah :
su - zimbra -c "zmprov ma namaaccount@namadomain zimbraAccountStatus STATUS".
Parameter STATUS bisa diisi dengan : active, locked, closed dan maintenance.
Leave A Reply