Конфигурация сжатия электронной почты представляет собой двухэтапный процесс:
Создайте файл конфигурации для dovecot, чтобы включить плагин zlib
Файлы конфигурации Dovecot обычно находятся в / etc /dovecot/conf.d/
Вы можете создать в этом каталоге файл с именем 35-zlib.conf
с этим содержимым
# Enable Zlib for imap
protocol imap {
mail_plugins = $mail_plugins zlib
}
# Enable Zlib for pop3
protocol pop3 {
mail_plugins = $mail_plugins zlib
}
# Increase memory allowed for imap as it costs more to read compressed files
service imap {
vsz_limit = 1024MB
}
. Убедитесь, что ваша конфигурация верна с помощью doveconf -n
, затем перезапустите dovecot, используя service dovecot restart
Затем нам нужно каждый день запускать сценарий для сжатия электронных писем старше 6 месяцев
Надеюсь, это можно сделать с помощью [подробный] команда поиска
В /etc/cron.daily/
создайте файл, назовем его [1 151675] archive-email
Напишите в нем этот скрипт
#!/bin/sh
find /var/qmail/mailnames -mtime +182 -type f -regex ".*\.$HOSTNAME,.*S=.*,[a-yA-Y]*" ! -name "*\.gz*" -exec cp -a "{}" /tmp/ \; -exec sh -c "basename \"{}\" | xargs -L1 -I[] gzip \"/tmp/[]\"" \; -exec sh -c "[ -f \"{}\" ] && (basename \"{}\" | xargs -L1 -I[] mv \"/tmp/[].gz\" \"{}Z\" && rm \"{}\") && echo \"{}\" >> /var/log/archived-emails.log || (basename \"{}\" | xargs -L1 -I[] rm \"/tmp/[]\")" \;
Не забудьте запустить chmod + x
для созданного файла, чтобы он стал исполняемым
/ var / qmail / mailnames
обычно является корневой папкой, в которой хранятся электронные письма, это может зависеть от вашей конфигурацииМодификатор
-mtime +182
позволяет нам находить только файлы, созданные более чем 182 дней назад (в основном 6 месяцев), измените его соответствующим образомс помощью
-типа f -regex ". * \. $ HOSTNAME,. * S =. *, [a-yA-Y] *"
, мы хотим найти только файлы электронной почты, в которых нет флага Z, которые обычно называются в этом формате1505740244.M351559P24632.my.domain.com, S = 38204, W = 40910: 2, S
Более подробная информация о формате maildir здесьНаконец, мы копируем электронные письма для сжатия в каталог
\ tmp
, чтобы избежать конфликтов во время сжатия, мы запускаем команду gzip для файла и перемещаем их снова, если файл все еще существует в исходном местоположении, добавив в его имя флаг Z, чтобы указать, что они сжаты, чтобы мы не архивировали их снова и, наконец, удаляли исходный файл.Этот процесс был реализован в соответствии с рекомендациями dovecot wiki , но утилита
maildirlock
имеет ошибку , начиная с версии 2, которая никогда не исправлялась,поэтому я не использую его, однако маловероятно, что это вызовет проблемы.Мы также регистрируем все успешно заархивированные файлы в
\ var \ log \ archived-emails.log
. Вы можете запустить команду в своем сначала терминал без exec, чтобы убедиться, что вы соответствуете правильным файлам
find / var / qmail / mailnames -mtime +182 -type f -regex ". * \. $ HOSTNAME,. * S =. *, [a-yA -Y] * "