Zimbra 的功能強大,尤其是 WebUI 的管理能力更是相當全面,絕大多數情況下管理者只需要在 Web 管理介面簡單點選,就可以完成建置與日常管理。
儘管如此,它也不缺乏 CLI 文字指令工具,最近在一個場景裡,需要將全部已建立好的大量帳戶與多個網域刪除,這時候用 CLI 明顯會快上許多。
刪除大量帳戶
請參考以下指令進行操作:
# 切換為 zimbra 帳戶 su zimbra # 匯出使用者帳戶 zmprov -l gaa > /opt/tmp/accounts.zmp # 若僅是要刪除後再重新匯入帳戶,請手動開啟匯出檔案,並將 # admin, gal, virus, spam, ham... 開頭系統帳戶移除 nano /opt/tmp/accounts.zmp # 在每一行帳戶前加入 deleteAccount 命令 sed -i 's/^/deleteAccount &/g' /opt/tmp/accounts.zmp # 執行大量帳戶刪除作業 zmprov < /opt/tmp/accounts.zmp # 離開 exit
提醒:
刪除帳戶並不會將它所屬的郵件等相關物件一併刪除,若要完整連同相關的資料(郵件、行事曆、連絡人、公事包...等),請使用 WebUI 或寫 Script 呼叫 SOAP API,最為完整。
刪除大量網域
請參考以下指令進行操作:
# 切換為 zimbra 帳戶 su zimbra # 匯出網域 zmprov -l gad > /opt/tmp/domains.zmp # 若僅是要某些網域,請手動開啟匯出檔案,並將要保留的 # 相關網域名稱刪除 nano /opt/tmp/domains.zmp # 在每一行網域前加入 deleteAccount 命令
sed -i 's/^/deleteDomain &/g' /opt/tmp/domains.zmp # 執行大量網域刪除作業 zmprov < /opt/tmp/domains.zmp # 離開 exit
參考資料
- Zimbra remove all accounts TODO: find a better way to automate this
https://gist.github.com/filippo/7573086
- Zmprov - Zimbra :: Tech Center
https://wiki.zimbra.com/wiki/Zmprov