John Dennis 38f226
#!/bin/sh
John Dennis 38f226
#
John Dennis 38f226
# This file is run on a daily basis to perform a backup of your
John Dennis 38f226
# mailbox list which can be used to recreate mailboxes.db from backup.
John Dennis 38f226
# Restore is done using ctl_mboxlist after uncompressing the file.
John Dennis 38f226
John Dennis 38f226
BACKDIR="/var/lib/imap/backup"
John Dennis 38f226
MBOXLIST="${BACKDIR}/mboxlist"
John Dennis 38f226
ROTATE=6
John Dennis 38f226
John Dennis 38f226
# fallback to su if runuser not available
John Dennis 38f226
if [ -x /sbin/runuser ]; then
John Dennis 38f226
  RUNUSER=runuser
John Dennis 38f226
else
John Dennis 38f226
  RUNUSER=su
John Dennis 38f226
fi
John Dennis 38f226
John Dennis 38f226
# source custom configuration
John Dennis 38f226
if [ -f /etc/sysconfig/cyrus-imapd ]; then
John Dennis 38f226
  . /etc/sysconfig/cyrus-imapd
John Dennis 38f226
fi
John Dennis 38f226
John Dennis 38f226
[ -x /usr/lib/cyrus-imapd/ctl_mboxlist ] || exit 0
Tomas Janousek 1e9e72
[ -f /var/lib/imap/db/skipstamp ] || exit 0
John Dennis 38f226
John Dennis 38f226
# rotate mailbox lists
Tomas Janousek 7f66da
seq $[ $ROTATE - 1 ] -1 1 | while read i; do
John Dennis 38f226
  [ -f ${MBOXLIST}.${i}.gz ] && mv -f ${MBOXLIST}.${i}.gz ${MBOXLIST}.$[ $i + 1 ].gz
John Dennis 38f226
done
John Dennis 38f226
[ -f ${MBOXLIST}.gz ] && mv -f ${MBOXLIST}.gz ${MBOXLIST}.1.gz
John Dennis 38f226
John Dennis 38f226
# export mailboxes.db
John Dennis 38f226
$RUNUSER - cyrus -c "umask 077 < /dev/null ; /usr/lib/cyrus-imapd/ctl_mboxlist -d | gzip > ${MBOXLIST}.gz"
John Dennis 38f226
John Dennis 38f226
exit 0
John Dennis 38f226
# EOF