2021年2月27日 星期六

[技巧分享] 一次刪除 Zimbra 伺服器上全部的帳戶或網域



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








參考資料