On 29.12.2011, at 15.36, Jan-Frode Myklebust wrote: > On Thu, Dec 29, 2011 at 02:55:40PM +0200, Timo Sirainen wrote: >>> >>> I.e. find all maildir-files: >>> >>> - with size in the name ("*,S=*") >>> - modified before I enabled zlib plugin >> >> As long as it doesn't find any already compressed mails.. > > Can't I trust that no mails with timestamp before I enabled compression > are uncompressed? Or will dovecot compress old messages keeping old > timestamp when copying messages between folders, or something like that?
It's possible that a user saves a mail with an old IMAP INTERNALDATE (=file's mtime), which is already compressed. You could use ctime, but that could skip mails whose flags have been changed since compression. > I want to avoid reading every file to check if it's compressed > already, as that will add ages to an already slow process.. You could use mtime, and just before compressing the mail check if it's already compressed. That won't add much overhead. >>> - compress them >>> - add the Z suffix >> >> Make sure there's also :2, suffix already. If someone hasn't logged in for a >> while there are such files in new/ directory. > > So, > find /var/vmail -type f -name "*,S=*:2*" -mtime +6 -exec gzip -S Z -6 > '{}' + > > > Right ? I don't care too much if I miss on a few percent of the files.. Yes.