#!/bin/bash # https://wiki.dovecot.org/Plugins/Zlib USE_TMP=${USE_TMP:-false} dir="${1}" test -d "${dir}" || exit 1 test -d "${dir}/cur" || exit 1 # Trabajar en memoria (si estamos sincronizando al mismo tiempo, dovecot # empieza a fallar) ${USE_TMP} && mount -t tmpfs none "${dir}/tmp" # Bloquear el directorio por un rato /usr/lib/dovecot/maildirlock "${dir}" 3600 > "${dir}/tmp/lock" test $? -eq 0 || exit 1 du -hd1 "${dir}/cur" # Solo buscamos en cur porque new ya va a estar comprimido find "${dir}"/cur -type f \ | grep -v dovecot \ | grep -v "Z$" \ | grep "S=" \ | xargs -r -d "\n" -P 5 compress-mail du -hd1 "${dir}/cur" # Matar el lock cat "${dir}/tmp/lock" | xargs kill # Desmontar ${USE_TMP} && umount "${dir}/tmp"