Beberapa waktu yang lalu, Dudi Gurnadi-sosok yang saya hormati karena kecerdasan dan apresiasinya, meski saya belum pernah bertemu muka-membuatkan sebuah script sederhana untuk backup Zimbra mailbox secara live. Script ini sangat bermanfaat untuk melakukan proses backup mailbox Zimbra tanpa harus melakukan stop dan start service Zimbra.
Pada artikelnya disampaikan bahwa proses restore bisa dilakukan melalui menu preferences pada mailbox masing-masing atau bisa juga dengan perintah seperti contoh berikut ini :
[code language=’cpp’]
/opt/zimbra/bin/zmmailbox -z -m user@domain.com postRestURL “//?fmt=tgz&resolve=reset” /tmp/account.tgz
[/code]
Saat ini saya sedang dalam proses migrasi Zimbra 5.0.22 openSUSE 10.3 yang ada pada VirtualBox kedalam Zimbra 6.0.5 yang ada pada SLES 11 Xen Hypervisor (berjalan diatas openSUSE 11.2). Kesempatan ini saya gunakan untuk melakukan testing restore hasil backup.
Berikut adalah beberapa pesan yang timbul saat saya mencoba perintah untuk restore :
- Permission Denied. Masalah ini terjadi karena saya menyimpan file backup dengan permission akses milik root. Saya harus mengubah permissionnya dengan perintah chmod agar user Zimbra bisa mengakses file backup tersebut
- Cannot Execute Binary File. Hal ini terjadi karena ada kesalahan penulisan tanda kutif pada perintah diatas. Tanda kutif pada format tulisan dengan format RTF (Rich Text Format) berbeda dengan tanda kutif pada penulisan plain text. Ganti tanda kutif tersebut dengan menghapusnya dan kemudian mengetik tanda kutif secara manual melalui keyboard
- Illegal Argument.
[code language=’cpp’]
zimbra@mailserver:~> zmmailbox -z -m vavai@namadomain.co.id postRestURL ‘//?fmt=tgz&resolve=reset’ /srv/zimbrabackupvavai.tgz
Exception in thread “main” java.lang.IllegalArgumentException: Invalid uri ‘http://mailserver.namadomain.co.id:80/home/vavai@namadomain.co.id/???fmt=tgz&resolve=reset’: escaped absolute path not valid
at org.apache.commons.httpclient.HttpMethodBase.(HttpMethodBase.java:219)
at org.apache.commons.httpclient.methods.ExpectContinueMethod.(ExpectContinueMethod.java:92)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.(EntityEnclosingMethod.java:118)
at org.apache.commons.httpclient.methods.PostMethod.(PostMethod.java:105)
at com.zimbra.cs.zclient.ZMailbox.postRESTResource(ZMailbox.java:2592)
at com.zimbra.cs.zclient.ZMailboxUtil.doPostRestURL(ZMailboxUtil.java:2724)
at com.zimbra.cs.zclient.ZMailboxUtil.execute(ZMailboxUtil.java:1138)
at com.zimbra.cs.zclient.ZMailboxUtil.main(ZMailboxUtil.java:2607)
[/code]
Masalah ini juga sama dengan diatas, kesalahan penggunaan tanda kutif 1 pada perintah, semestinya menggunakan tanda kutif 2
Berikut adalah contoh perintah yang berhasil saya pergunakan :
[code language=’cpp’]
zimbra@mailserver:~> zmmailbox -z -m vavai@namadomain.co.id postRestURL “//?fmt=tgz&resolve=reset” /srv/zimbrabackupvavai.tgz
[/code]
Saya akan membuatkan script lengkap yang akan secara otomatis melakukan proses restore semua mailbox yang sudah ditransfer menggunakan script yang dibuat oleh mas Dudi. Saat ini scriptnya sedang saya ujicoba dan lengkapi.
Referensi Artikel :
- http://dgk.or.id/archives/2010/02/11/live-backup-untuk-zimbra-open-source-edition/
- http://www.zimbrablog.com/blog/archives/2008/09/zcs-to-zcs-migrations.html
- http://www.zimbra.com/forums/administrators/37114-per-user-backup-foss-edition.html
- http://wiki.zimbra.com/index.php?title=Zimbra_to_Zimbra_Server_Migration
2 Comments
Mas Vavai,
Saya ada problem ketika coba restore mailbox menggunakan script tsb.
Error yg muncul sbb:
Exception in thread “main” java.lang.NullPointerException
at java.net.URI$Parser.parse(URI.java:3023)
at java.net.URI.(URI.java:595)
at com.zimbra.client.ZMailbox.resolveUrl(ZMailbox.java:5080)
at com.zimbra.client.ZMailbox$Options.setUri(ZMailbox.java:279)
at com.zimbra.client.ZMailbox$Options.setUri(ZMailbox.java:273)
at com.zimbra.client.ZMailbox$Options.(ZMailbox.java:238)
Padahal account dipastikan sudah direstore dan sudah ada di sistem zimbra. Mohon pencerahannya..
Thanks b4,
Awaludin