1CYR_EXPIRE(8) Cyrus IMAP CYR_EXPIRE(8)
2
3
4
6 cyr_expire - Cyrus IMAP documentation
7
8 Expire messages and duplicate delivery database entries
9
11 cyr_expire [ -C config-file ] [ -A archive-duration ]
12 [ -D delete-duration ] [ -E expire-duration ] [ -X expunge-duration ]
13 [ -p mailbox-pre‐fix ] [ -u username ] [ -t ] [ -v ]
14 [ -a ] [ -c ] [ -x ]
15
17 cyr_expire is used to run a number of regular maintenance tasks on
18 Cyrus databases, specifically:
19
20 • expire messages from mailboxes, and
21
22 • expire entries from the duplicate delivery database, and
23
24 • cleanse mailboxes of partially expunged messages (when using the “de‐
25 layed” expunge mode), and
26
27 • remove deleted mailboxes (when using the “delayed” delete mode), and
28
29 • expire entries from conversations databases, and
30
31 • archive messages from mailbox.
32
33 There are various annotations that cyr_expire respects:
34
35 • /vendor/cmu/cyrus-imapd/expire which controls the expirations of mes‐
36 sages
37
38 • /vendor/cmu/cyrus-imapd/archive which controls the archival of mes‐
39 sages
40
41 • /vendor/cmu/cyrus-imapd/delete which controls the deletion of mes‐
42 sages
43
44 These mailbox annotations specify the age(in days) of messages in the
45 given mailbox that should be expired/archived/deleted.
46
47 The value of the /vendor/cmu/cyrus-imapd/expire annotation is inherited
48 by all children of the mailbox on which it is set, so an entire mailbox
49 tree can be configured by setting a single annotation on the root of
50 that tree. If a mailbox does not have a /vendor/cmu/cyrus-imapd/expire
51 annotation set on it (or does not inherit one), then no messages are
52 expired from the mailbox.
53
54 The annotation can be examined using the info command of cyradm(8), and
55 modified using the mboxconfig and setinfo commands of cyradm(8).
56
57 Expiration of duplicate delivery database entries for a given mailbox
58 is also controlled by the /vendor/cmu/cyrus-imapd/expire annotation
59 which applies to that mailbox. A value of 0 on the annotation means
60 that no expiration is to be performed on that mailbox. Unlike message
61 expiration, if no annotation applies to the mailbox then duplicate
62 database entries are expired using the value given to the -E option.
63
64 Expiration of conversations database entries occurs if the conversa‐
65 tions option is present in imapd.conf(5). Expiration can be disabled
66 using the -c option. The period used to expire entries is controlled
67 by the conversations_expire_days option in imapd.conf(5).
68
69 cyr_expire reads its configuration options out of the imapd.conf(5)
70 file unless specified otherwise by -C.
71
72 cyr_expire requires at least one of -A -D -E -X or -t to be supplied.
73
75 -C config-file
76 Use the specified configuration file config-file rather than the
77 default imapd.conf(5).
78
79 -A archive-duration
80 Archive non-flagged messages older than archive-duration to the
81 archive partition, allowing mailbox messages to be split between
82 fast storage and slow large storage. Only does anything if
83 archivepartition-* has been set in your config. This value is
84 only used for entries which do not have a corresponding /ven‐
85 donr/cmu/cyrus-imapd/archive mailbox annotation.
86
87 This feature was introduced in version 3.0.
88
89 -D delete-duration
90 Remove previously deleted mailboxes older than delete-duration
91 (when using the “delayed” delete mode). The value can be a
92 floating point number, and may have a suffix to specify the unit
93 of time. If no suffix, the value is number of days. Valid suf‐
94 fixes are d (days), h (hours), m (minutes) and s (seconds).
95 This value is only used for entries which do not have a corre‐
96 sponding /verdor/cmu/cyrus-imapd/delete mailbox annotation.
97
98 -E expire-duration
99 Prune the duplicate database of entries older than expire-dura‐
100 tion. This value is only used for entries which do not have a
101 corresponding /vendor/cmu/cyrus-imapd/expire mailbox annotation.
102 Format is the same as delete-duration.
103
104 -X expunge-duration
105 Expunge previously deleted messages older than expunge-duration
106 (when using the “delayed” expunge mode). Format is the same as
107 delete-duration.
108
109 -c Do not expire conversation database entries, even if the conver‐
110 sations feature is enabled.
111
112 This feature was introduced in version 3.0.
113
114 -x Do not expunge messages even if using delayed expunge mode.
115 This reduces IO traffic considerably, allowing cyr_expire to be
116 run frequently to clean up the duplicate database without over‐
117 loading the machine.
118
119 -p mailbox-prefix
120 Only find mailboxes starting with this prefix, e.g.
121 “user.justgotspammedlots”.
122
123 -u userid
124 Only find mailboxes belonging to this user, e.g. “‐
125 justgotspammedlots@example.com”.
126
127 -t Remove any user flags which are not used by remaining (not ex‐
128 punged) messages.
129
130 -v Enable verbose output.
131
132 -a Skip the annotation lookup, so all /vendor/cmu/cyrus-imapd/ex‐
133 pire annotations are ignored entirely. It behaves as if they
134 were not set, so only expire-days is considered for all mail‐
135 boxes.
136
138 cyr_expire -E 3 -D 60 -X 60
139 Purge duplicates database of all entries older than 3 days, remove
140 deleted mailboxes older than 60 days and deleted messages older than
141 60 days.
142
143 cyr_expire -x -c -A 7d
144 Perform migration of message older than 7 days to Archive partition
145 whilst not altering conversation database nor expunging messages.
146
148 Archive partition and conversation support was first introduced in
149 Cyrus version 3.0.
150
152 /etc/imapd.conf
153
155 imapd.conf(5), master(8), cyradm(8)
156
158 The Cyrus Team, Nic Bernstein (Onlight), Jeroen van Meeuwen (Kolab Sys‐
159 tems)
160
162 1993-2018, The Cyrus Team
163
164
165
166
1673.4.4 June 27, 2022 CYR_EXPIRE(8)