Script untuk Export-Import Account Zimbra+Password
2 hari ini saya tidak sempat membaca buku gara-gara penasaran membuat script export account Zimbra mail server yang bisa menyertakan password. Salah satu diskusi dengan mas Dudi Gurnadi memberikan beberapa clue, namun setelah saya coba masih gagal maning-gagal maning 🙂
Kemarin akhirnya saya membuat ulang script export account Zimbra dengan cara mengambil password LDAP. Nantinya, file LDIF yang dibentuk bisa diimport dan otomatis menginjeksikan passwordnya ke LDAP.
Logikanya seperti ini :
Logika untuk Export Account :
- Check apakah pakai Zimbra versi 5 atau versi 6. Keduanya memiliki sedikit perbedaan cara akses dan perintah yang kebetulan berkaitan dengan perintah yang nantinya akan saya gunakan
- Export data email account Zimbra ke parameter dan looping dari awal hingga akhir
- Didalam proses looping, hindari proses transfer system account seperti admin, ham, spam, galsync dan wiki. Ini karena account tersebut otomatis dibuat pada saat instalasi Zimbra
- Didalam proses looping, dapatkan identitas atau profile (field) data LDAP dengan perintah LDAPsearch
- Buat file teks berbentuk zmp yang memuat perintah zmprov ca dengan isi sesuai profile yang didapatkan dari parameter point no 4
- Buat file ldif sesuai email account yang memuat perubahan password LDAP
- Finish
Logika untuk Import Account
- Check apakah sudah dalam posisi user Zimbra
- Check apakah sudah ada file zmp dan ldif yang akan digunakan untuk import
- Import file zmp
- Lakukan perintah ldapmodify untuk mengubah password sesuai account yang ada di file ldif
- Finish
Satu hal yang perlu diingat, jalankan script export account dengan privilege root sedangkan file script import account dijalankan dengan privilege user Zimbra.
Berikut ini adalah contoh untuk Export account Zimbra :
[code language=’cpp’]
su
cd /srv
wget -c https://www.vavai.com/wp-content/uploads/exim-acc-zcs.tar.gz
tar -zxvf exim-acc-zcs.tar.gz
cd exim-acc-zcs
./export-acc-zcs.sh
[/code]
Nantinya perintah tersebut akan menghasilkan file zcs-acc-add.zmp dan zcs-acc-mod.ldif. Salin keempat file ini (2 lainnya adalah file script) ke salah satu folder di komputer yang baru diinstall Zimbra
Contoh untuk Import account (dijalankan di komputer yang baru diinstall Zimbra). Dalam contoh ini saya menempatkan keempat file didalam folder /home/vavai
[code language=’cpp’]
su
su – zimbra
cd /home/vavai
./import-acc-zcs.sh
[/code]
Perintah diatas sudah saya testing pada Zimbra 6.0.5, 6.0.6 dan 6.0.7 pada SUSE Linux Enterprise Server 11. Untuk Zimbra versi 5 perlu ada penyesuaian sedikit terkait perintah ldap, saya akan segera melakukan update scriptnya.
File Script dapat didownload dengan melakukan klik pada gambar download dibawah ini :
OMG … you saved my time!
Thank you ..
NB: mungkin izin perubahan dikit2 skripnya tar yah …
mas scrip ini bisa ngak diguakan untuk zimbra 7.1.1 soalnya saya nyoba ngak bisa.. daftar accounya saya lihat di file zcs-acc-add.zmp tidak data atau kosong…
maksunya tidak ada bukan tidak data…. mf salah ketik
@Aries,
Untuk versi 7, buka file script, ganti “Release 6” jadi “Release 7”
mas ko di zimbra 7 ga bisa yah?
————————————————————————————————–
Enter Domain Name (ex : vavai.com) : domain.com
Enter path folder for exported account (ex : /home/vavai/) : /opt/
-e 033[1mn===> Retrieve Zimbra User…………………………033[0m
Release 7.2.0_GA_2669.UBUNTU10_64 UBUNTU10_64 FOSS edition.
-e 033[1mn===> Processing account, please wait…………………………033[0m
[: 103: domain.com: unexpected operator
Skipping account admin@domain.com
————————————————————————————————–
@Deont,
Kalau dipakai di Ubuntu, ganti baris awal dari :
#!/bin/sh
Menjadi (hilangkan tanda !)
#/bin/sh
Kemudian edit angka 6 pada baris :
grep “Release 6.” $ZCS_VER
menjadi angka 7
terima kasih mas vavai. 🙂
kalo untuk export import email nya ada scriptnya juga?
terimakasih banyak sebelumnya.
🙂
saya baca thread yang
————————————————
https://www.vavai.com/2010/03/15/tips-untuk-backuprestoremoving-zimbra-mail-server-bagian-3/
————————————————
tapi masih dapat error mas. T.T
ralat link >>>
https://www.vavai.com/2010/03/15/tips-untuk-backuprestoremoving-zimbra-mail-server-bagian-2/
salam sukses selalu buat mas vavai
mas ni sy mau nanyak nih…
sy udah caba script ekport account zimbranya….. berhasil. yaitu menghasilkan 2 file.
kemudian sy hapus user-user zimbra yang telah berhasil sy backup
setelah itu sy coba restore kembali user-user yang telah sy backup di atas…
hasinya succes ……. user-user yang telah sy hapus di atas kembali muncul…
tapi passworndya tidak berhasil……
mohon pencerahannya mas vavai….. maklum masih new be di linux dan zimbra……
@Jamal,
Bisa coba restart service dulu mas, mestinya bisa karena sudah saya test sampai Zimbra 7
Mas Vavai, kalau export di zimbra versi 5 kok nggak bisa ya? file .ldif isinya 0. Trims
Mas kalau export lebih dari 1 domain gimana? jadi ada sub domain gitu…trims atas tanggapannya
mas vavai,
sebelumnya terimakasih untuk sharing nya..
saya saat ini mencoba export import dari script yg telah di buat mas vavai dengan kondisi zimbra source dan destination nya berbeda domain, cara yg saya lakukan sbb :
1. login sebagai root jalankan script export, dan berhasil mendapatkan output file zmp dan ldif pada server dengan domain A.
2. change/ edit file zmp dan ldif, dengan mengubah dari domain A menjadi domain B.
3. jalankan script import pada mail server dengan domain B, dan outputnya sepertinya berhasil.
ketika coba di test login di client dengan account hasil import, ternyata tidak berhasil dengan message seperti nya password yg salah.
berikut process importnya :
===> Importing account…
standard in must be a tty
prov> createAccount test@zimbratest.com passwordtemp displayName ‘test’ givenName ” sn ‘test’ initials ” zimbraPasswordMustChange FALSE
1d49fbc7-fc65-4f4c-a9d4-01a1409b58f6
prov>
===> Modify password…ZIMBRA_LDAP_PASSWORD
modifying entry “uid=test,ou=people,dc=zimbratest,dc=com”
===> Zimbra account has been modified sucessfully …
[zimbra@webmail testbackup]$
dari sini mungkin mas vavai bisa menjelaskan, apakah process modify diatas sebenarnya berhasil atau tidak..? jika tidak bagaimana untuk memperbaikinya?
Terima kasih sebelumnya
tambahan mas :
zimbra source, versionnya sbb;
Release 6.0.7_GA_2473.RHEL5_64_20100616215237 CentOS5_64 FOSS edition.
sedangkan zimbra destination, versionnya sbb :
Release 7.2.2_GA_2852.RHEL5_64_20121204211814 CentOS5_64 FOSS edition.
mas vavai,
done mas, sudah bisa, ternyata zimbra mesti di restart dahulu.
thanks ya mas.
eh iya mas, apakah bisa pesan beberapa module traning dari mas vavai.?
karna keterbatasan waktu, saya tertarik untuk memesannya mas, saya kirim message dari link mas, tinggal tunggu mekanisme nya.
Alhamdulillah,
Sukses mindahin user dengan passwordnya dari zimbra 5 diubuntu 8.04 ke zimbra 7 di ubuntu 10.04
Terimakasih
mas vavai saya pake zimbra 8 ko gaberhasil ya yang ke restore cuma pada bagian domain aja yang ker restore akunnya ga bisa. kira” apa yang saya harus rubah dari scirptnya makasi mas vavai
mas vavai saya coba running skript import ini di zimbra ver 8.0.5 untuk accountnya semua terimport tap pas di coba login di webmail tidak jadi passwordnya tidak terimport, kira2 gimana mas solusinya
@Agam,
Pada Zimbra 7 dan 8, lakukan restart service Zimbra mas, nanti otomatis update passwordnya.
Setelah direstart service-nya, test login ulang
mas vavai,
di zimbra 8 saya sudah coba restart servicenya tapi koq passwordnya ngga bisa yah ? saya coba login selalu dibilang passwordnya salah … kenapa yah mas ?
Dear Pak Vavai, bisa tidak jika mau import account email ke domain yg berbeda,,
work perfectly di ver 8 07
dear mas vavai,
saya sudah mengikuti totorial diatas, ada beberapa error dalam proses backup
1. Enter Domain Name (ex : vavai.com) : danabergulir.com
Enter path folder for exported account (ex : /home/vavai/) : /home/backup_2014/account-email
Password:
su: incorrect password
ini password apa ya ? saya masukan password root gak mau
mohon pencerahannya
Dear Mas vavai,
saya ingin migrasi dari zimbra 5 – ubuntu ke zimbra 8.5 – centos
script exportnya sudah bisa mas, akun tercreate semua, akan tetapi passwordnya gagal terimport, saya mendapati error :
modifying entry “uid=xxx,ou=people,dc=xxxyx,dc=co,dc=id”
ldap_modify: Object class violation (65)
additional info: attribute ‘userPassword’ not allowed
error tersebut ada saat export berlangsung…
Mohon solusinya nie mas..
Thanks…
Dear mas vavai,
mau update comment saya sblmnya, error diatas ternyata ditimbulkan karena terdapat nama milist yang sama dengan nama akun email… 😀
at last, berhasil juga…, thanks a lot sm scriptnya, sukses selalu buat mas vavai…
@Tanto,
OK mas, sip. Thanks untuk updatenya
Vavai
Om Vavai, saya sudah jalankan scrip diatas, untuk export berhasih dan datanya lengkap, tetapi ketika di import ke mail server baru, account yang ke import hanya 100 dari 300 user dan passwordnya juga tidak dapat digunakan. sudah saya restart server maupun service zimbranya.
===> Modify password…
ldap_bind: Invalid credentials (49)
===> Zimbra account has been modified sucessfully …
Halo mas Topik,
Coba lihat pesan error detailnya seperti apa. Kalau pesannya ldap_bind invalid credentials, apakah sempat ada perubahan password root ldap?
Kalau pesannya ldap_bind invalid credentials sudah clear, iya saya sempat mengganti password ldap. Tetapi untuk jumlah user yang terrestore tetap sama sekitar 100an dari 300 user dan password usernya tidak semua ke restore sekitar 30 dari 100 user yang sudah terestor.
Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 0
ldap_modify: No such object (32)
matched DN: ou=people,dc=hillconmining,dc=com
Pesan error detailnya seperti apa dimana yah om.
Problem Solve om vavai. Ketika proses import dia tidak mau jika ada tanda petik (‘) di dalam Displayname, sn atau givename user email.
Contohnya :
createAccount marufin@hillconmining.com passwordtemp displayName ‘Ma’rufin’ givenName ” sn ‘Ma’rufin’ initials ” zimbraPasswordMustChange FALSE
mohon info,
mail server saya menggunakan zimba Release 8.0.7_GA_6021.RHEL6_64_20140408123911 RHEL6_64 FOSS edition
proses backup berhasil dan menghasilkan kan 2 file yaitu :
zcs-acc-add.zmp dan zcs-acc-mod.ldif
Enter Domain Name (ex : vavai.com) : namadomain.com
Enter path folder for exported account (ex : /home/vavai/) : /home/account
3[1m
===> Retrieve Zimbra User…………………………3[0m
3[1m
===> Processing account, please wait…………………………3[0m
3[1m
===> All account has been exported sucessfully into /home/account/zcs-acc-add.zmp and /home/account/zcs-acc-mod.ldif…3[0m
di file zcs-acc-add.zmp hanya terdapat 1 baris yg berisi createDomain namadomain.com
dan di file zcs-acc-mod.ldif tidak ada data 1 barus pun…
mohon penerahannya, apakah proses backup yang saya lakukan ini sudah benar ? apakah ada yg terlewat ?
terimakasih,
@Lazuardi,
Coba 2 hal berikut :
1. Hilangkan tanda ! dari tulisan paling atas (/bin/bash)
2. Ganti tulisan angka 6 (yang melambangkan release 6) dengan angka 8, karena Zimbra yang digunakan adalah versi 8
bisakah kita bikin email di zimbra secara otomatis,,, yang datanya sdh sy buat di microsof excel,, contohnya ada sepuluh orang yg akan saya bikin emailnya,, apa bisa langsung di buatkan tidak satu satu
Mas Vaivai
kalo ada error spt ini gmn ya
===> Modify password…
ldapmodify: invalid format (line 4) entry: “uid=virus-quarantine.pjssmzpz,ou=people,dc=teleglobal,dc=co,dc=id”
===> Zimbra account has been modified sucessfully …
server awal zimbra8.6 saya mau export ke zimbra 8.7.3
Mohon bantuannya Mas Vavai saat menjalankan script export ada error berikut :
Adding account test.xxxxx@xxxxxxx.com
./export-acc-zcs.sh: line 71: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 74: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 77: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 79: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 81: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 83: /opt/zimbra/bin/ldapsearch: No such file or directory
./export-acc-zcs.sh: line 85: /opt/zimbra/bin/ldapsearch: No such file or directory
Release 8.7.0_GA_1659.RHEL7_64_20160628202714 RHEL7_64 FOSS edition
CentOS Linux release 7.2.1511 (Core)
Terima kasih.
@Yogi,
Coba check file ldapsearch ada di folder apa didalam folder Zimbra 8.7.x mas
Mas Vavai, setelah di cek ada di /opt/zimbra/common/bin/ldapsearch
Mas Vavai, terima kasih exportnya sudah jalan sekarang… 🙂
Mas Vavai,
Proses export dan importnya berhasil. Tapi setelah dicoba login ternyata tidak bisa padahal username & password sudah benar.
Service dan Servernya coba di restart juga sama tidak bisa login, kemungkinan salah password.
ERROR: ldap.INVALID_ATTR_VALUE (invalid attr value – unable to create entry: ldap host=ldap.bandung.go.id:389: initials: value #0 invalid per syntax) (cause: com.unboundid.ldap.sdk.LDAPException initials: value #0 invalid per syntax)
ldapmodify: invalid format (line 4) entry: “uid=gungun,ou=people,dc=bandung,dc=go,dc=id”
mail server zimbra lama 8.6
mail server zimbra baru 8.8.12
Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at com.zimbra.cs.account.ProvUtil.keyValueArrayToMultiMap(ProvUtil.java:3795)
at com.zimbra.cs.account.ProvUtil.getAttrMap(ProvUtil.java:3825)
at com.zimbra.cs.account.ProvUtil.getMapAndCheck(ProvUtil.java:3760)
at com.zimbra.cs.account.ProvUtil.execute(ProvUtil.java:1115)
at com.zimbra.cs.account.ProvUtil.interactive(ProvUtil.java:3869)
at com.zimbra.cs.account.ProvUtil.main(ProvUtil.java:4119)
untuk kasus error diatas sudah di berhasil. itu dikarenakan ada ada (‘) dan (”) di file backup .zmp.
error —> ldapmodify: invalid format (line 4) entry: “uid=gungun,ou=people,dc=bandung,dc=go,dc=id”
userPassword:: e1NTSEE1MTJ9SkdqNUR6V2tPL2d6emxXVlRkZzdmbjVYQTkrUDMrdzVlcnlnY1d
ada tanda :: di file backup .ldif. Setelah di ganti tanda :: menjadi :, import berhasil akan tetapi password salah ketika mau login. Sudah saya restart tetapi masih salah passwor.
Setelah saya coba password yang di pakai jadi hasil enkrip bukan password hasil decrypt.
ldap password di server sebelumnya berbeda dengan ldap di server baru. apakah saya harus rubah dulu ldap password di server baru dengan password ldap lama?
Error : ldapmodify: invalid format (line 4) entry: “uid=gungun,ou=people,dc=bandung,dc=go,dc=id”
script exportnya dan ganti parameter userPassword menjadi seperti berikut:
userPassword=/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep userPassword: -A 1| cut -d ‘:’ -f3