King0770-Notes-Nuking everything in a folder

King Notes nuking everything in a folder

This comes up once in a while in support; someone has thousands or millions of items in a folder, and they need to nuke the folder now.

Usually, the command to nuke everything in a folder is:

zmmailbox -z -m user01@domain.com ef /MyStuff

However, if the folder actually has "millions" of items in it, you may be inclined to remove 100 items at a time, and let the script run until all the items are removed.

Example:


#!/bin/bash

for msg in `zmmailbox -z -m user01@domain.com search -l 100 "in:MyStuff" | grep conv | awk '{ print $2 }' | sed -e 's/^-//'`
  do
echo "Removing "$msg""
zmmailbox -z -m user01@domain.com dm $msg
done

You can also query against mysql in a for-loop, to remove 1000 messages at a time.

e.g.

for i in `mysql mboxgroup71 -NBe "select id from mail_item where mailbox_id='3871' AND folder_id='2' LIMIT 1000;"`; do zmmailbox -z -m user@example.com deleteMessage $i; done

You will need to know how the zimbra account is structured, see https://wiki.zimbra.com/wiki/Account_mailbox_database_structure


Notable bugs:
http://bugzilla.zimbra.com/show_bug.cgi?id=38473

Jump to: navigation, search