1 |
#!/bin/sh |
2 |
# |
3 |
# This file is run on a daily basis to perform a backup of your |
4 |
# mailbox list which can be used to recreate mailboxes.db from backup. |
5 |
# Restore is done using ctl_mboxlist after uncompressing the file. |
6 |
|
7 |
ROTATE=6 |
8 |
|
9 |
configdirectory=`awk '/^[[:space:]]*configdirectory:/ {print $NF}' /etc/imapd.conf` |
10 |
backdir="${configdirectory}/backup" |
11 |
mboxlist="${backdir}/mboxlist" |
12 |
|
13 |
[ -x /usr/lib/cyrus-imapd/ctl_mboxlist ] || exit 0 |
14 |
[ -s ${configdirectory}/mailboxes.db ] || exit 0 |
15 |
|
16 |
[ -d ${backdir} ] || mkdir -p ${backdir} |
17 |
|
18 |
# rotate mailbox lists |
19 |
while [ ${ROTATE:-0} -gt 1 ]; do |
20 |
_prev=$(( $ROTATE -1 )) |
21 |
[ -f ${mboxlist}.${_prev}.gz ] && mv -f ${mboxlist}.${_prev}.gz ${mboxlist}.${ROTATE}.gz |
22 |
ROTATE=${_prev} |
23 |
done |
24 |
[ ${ROTATE:-0} -gt 0 -a -f ${mboxlist}.gz ] && mv -f ${mboxlist}.gz ${mboxlist}.1.gz |
25 |
|
26 |
# export mailboxes.db |
27 |
su - cyrus -c "umask 077 ; /usr/lib/cyrus-imapd/ctl_mboxlist -d | gzip > ${mboxlist}.gz" |
28 |
|
29 |
exit 0 |
30 |
# EOF |