ctl_mboxlist

Perform operations on the mailbox list database

Synopsis

ctl_mboxlist [ -C config-file ] -d [ -x ] [-y] [ -p partition ] [ -f filename ]
ctl_mboxlist [ -C config-file ] -u [ -f filename ] [ -L ]
ctl_mboxlist [ -C config-file ] -m [ -a ] [ -w ] [ -i ] [ -f filename ]
ctl_mboxlist [ -C config-file ] -v [ -f filename ]

Description

ctl_mboxlist is used to perform various administrative operations on the mailbox list database.

ctl_mboxlist reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C. The configdirectory option in imapd.conf(5) is used to determine the default location of the mailboxes database.

Options

-C config-file

Use the specified configuration file config-file rather than the default imapd.conf(5).

-d, --dump

Dump the contents of the database to standard output in JSON format.

-x, --remove-dumped

When performing a dump, remove the mailboxes dumped from the mailbox list (mostly useful when specified with -p).

-y, --include-intermediaries

When performing a dump, also list intermediary mailboxes which would be hidden from IMAP.

-p partition, --partition=partition

When performing a dump, dump only those mailboxes that live on partition.

-f filename, --filename=filename

Use the database specified by filename instead of the default (configdirectory/mailboxes.db*).

-L, --legacy

When performing an undump, use the legacy dump parser instead of the JSON parser. This might be useful for importing a dump produced by an older version of Cyrus.

-u, --undump

Load ("undump") the contents of the database from standard input. The input MUST be a valid JSON file, unless the -L option is also supplied.

Important

USE THIS OPTION WITH CARE. If you have modified the dump file since it was dumped, or if the file was not produced by -d in the first place, or was produced on a different server, you can easily break your mailboxes.db. Undump will refuse to process a syntactically-invalid dump file, but it can't do much to protect you from a valid file containing bad data.

-m, --sync-mupdate

For backend servers in the Cyrus Murder, synchronize the local mailbox list file with the MUPDATE server.

-a, --authoritative

When used with -m, assume the local mailboxes file is authoritative, that is, only change the mupdate server, do not delete any local mailboxes.

Important

USE THIS OPTION WITH CARE, as it allows namespace collisions into the murder.

-w, --warn-only

When used with -m, print out what would be done but do not perform the operations.

-i, --interactive

When used with -m, asks for verification before deleting local mailboxes.

-v, --verify

Verify the consistency of the mailbox list database and the spool partition(s). Mailboxes present in the database and not located on a spool partition, and those located on a spool partition (directory containing a valid cyrus.header file) and not present in the database will be reported. Note that this function is very I/O intensive.

Examples

ctl_mboxlist -d

Dump the mailboxes list to standard output in JSON format

ctl_mboxlist -u < newmboxlist.dump

Undump (restore) the mailboxes database from newmboxlist.dump, where newmboxlist.dump is a JSON file produced by ctl_mboxlist -d

Note

Be very careful with this option.

ctl_mboxlist -m

Synchronize our mailboxes database with the MUPDATE server. (One may commonly put a command like this into the START section of cyrus.conf(5) on backend nodes of a Murder cluster to cause the backend to synchronize its mailbox list with the mupdate master upon startup).

START {
    ##
    # Master sends mailbox updates to mupdate.
    # Replication client runs on Master.
    # Comment these 2 lines out on replicas
    mupdatepush         cmd="/usr/lib/cyrus/bin/ctl_mboxlist -m"
    syncclient          cmd="/usr/lib/cyrus/bin/sync_client -r"
    <...>
}
ctl_mboxlist -m -w

The same as above, but only show us what would be done, don't actually do it.

ctl_mboxlist -m -a

Populate the Mupdate server from our copy of the mailboxes database.

Note

Be very careful with this option, as it can create conflicts in the Murder.

ctl_mboxlist -m -i

Synchronize our mailboxes database with the MUPDATE server interactively, asking for verification before deleting any local mailboxes.

Files

/etc/imapd.conf, <configdirectory>/mailboxes.db