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.