Beberapa waktu lalu saya ada melakukan migrasi dan upgrade sistem email server Zimbra di salah satu perusahaan, mereka migrasi, upgrade sekaligus melakukan rename domain, jadi antara sistem lama dan sistem baru itu menggunakan nama domain yang berbeda. Proses migrasi hingga switching akses ke server baru bisa dibilang prosesnya cukup lancar, hingga suatu ketika ada komplain dari klien mengatakan bahwa user-user mereka jadi tidak bisa melakukan send as distribution list dari webmail. Saya cek ternyata di server lama mereka ada konfigurasi send as distribution list untuk semua user di masing-masing distribution list, dan konfigurasi tersebut tidak ikut ter export ke server baru.
Saya cek distribution list mereka ada cukup banyak, sekitar 300 an lebih, jadi tidak mungkin dilakukan manual satu persatu, jadi saya coba cari cara untuk otomatisasi nya by script.
Adapun command untuk mendapatkan settingan user mana saja yang diperbolehkan send as distribution list, bisa pakai command berikut :
su - zimbra zmprov gg -t dl nama_distlist@domain
Nanti hasil yang muncul akan seperti berikut
target type target id target name grantee type grantee id grantee name right ------------ ------------------------------------ ------------------------------ ------------ ------------------------------------ ------------------------------ -------------------- dl 437663b9-6658-499c-b5fd-463e7e73d207 nama_distlist@domain usr 352c97c6-a6c4-428c-82d6-2b04e5743a4c user1@domain sendAsDistList dl 437663b9-6658-499c-b5fd-463e7e73d207 nama_distlist@domain usr 35608c60-12d8-4de6-b3ec-4e70eac3028b user2@domain sendAsDistList dl 437663b9-6658-499c-b5fd-463e7e73d207 nama_distlist@domain usr 0a6e4303-a061-4841-9002-628cf03d28de user3@domain sendAsDistList
Dari command tersebut saya olah lagi supaya nanti bisa langsung di import di server baru, berikut ini scriptnya sudah saya buatkan, simpan di file /srv/get-grant.sh
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 "
echo "Example: $0 domain.com"
exit 1
fi
DOMAIN="$1"
for i in $(zmprov -l gadl | sort); do
zmprov gg -t dl "$i" | awk -v domain="$DOMAIN" '
NR <= 2 { next }
NF == 0 { next }
{
split($3, target, "@")
split($6, grantee, "@")
print "grr " $1, target[1]"@"domain, $4, grantee[1]"@"domain, $7
}'
done > /tmp/list-grant.zmp
Jalankan pada server lama
chmod +x /srv/get-grant.sh su - zimbra /srv/get-grant.sh
Nanti hasilnya akan tersimpan pada file /tmp/list-grant.zmp, salin file zmp ini ke server baru untuk dijalankan di server baru
scp /tmp/list-grant.zmp root@newserver:/tmp/
Pada server baru, jalankan command berikut untuk melakukan import grant dari hasil zmp diatas
su - zimbra zmprov < /tmp/list-grant.zmp
Tunggu hingga proses selesai, dan cek kembali di salah satu distribution list untuk mengecek apakah sudah muncul user-user yang diperbolehkan SendAsDistList
Mungkin cukup sekian, semoga bermanfaat

Rizky Pratama. Tinggal di Bekasi, Jawa Barat. Seorang IT di salah satu perusahaan IT. Pengguna Mac, Linux dan Windows
Selain sebagai penulis di blog ini, saya juga penulis di blog saya yang lain, yaitu https://pratama.biz.id





