Michael D. Sofka wrote:
I am working on a way to recover deleted (and purged) messages in Cyrus
IMAP. This is not as silly as it may at first sound. On Exchange there
is a setting whereby deleted items are not deleted from the server until
they are backed up. Before this time, they can be ``recovered'' from
the deleted items folder. (Why not, they're still available to the
system.)
Likewise, in our AFS file space (those were the days) we mount the
read-only backup volume in a directory called "./yesterday" so that
"oops, I didn't mean to delete that!" did not result in a phone call to
operations to restore a file. In AFS the backup volume is a "copy on
write" snapshot of the volume created for backup. Mounting these gave
access to the contents prior to the start of that day's backup. (And,
AFS and Cyrus IMAP share a mother, if only by adoption.... :-)
With that as background, our Cyrus IMAP servers use LVM snapshots for
backups. We make the snapshot, mount it, back it up, and unmount it.
Fairly standard. After a couple calls to restore "oops" inboxes, I
thought maybe the snapshot could be mounted as a read-only IMAP
partition. Users could access this to recover accidentally deleted
messages.
Alas, it is not quite that simple. The snapshot would just appear
to Cyrus IMAP. The mailboxes database would then have to be updated
with this new information, the access information would need to be
set, etc. However, I am wondering if there isn't some trick,
latent, in Cyrus IMAP to allow this feature. (If not, it goes on
my way to long projects list---and I wouldn't mind if somebody
beat me to it.)
Mike,
This might be worth discussing on the [email protected] list.
--
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University