Hello.
We are running dovecot 2.3.13. Full doveconf -n output below
In 2.3.14 Changelog I found this:
* Remove XZ/LZMA write support. Read support will be removed in future release.
We are using mdbox + XZ/LZMA for alternate storage (messages older than 2 weeks are moved to ALT storage via cron job), so we must convert from XZ to another thing (maybe zstd or bz2).
Our cron job script:
/usr/bin/doveadm -o mdbox_rotate_interval=14d -o mdbox_purge_preserve_alt=no -o mdbox_rotate_size=250m -o zlib_save=xz -o zlib_save_level=9 altmove -u $user
My first try to accomplish this conversion, without downtime, is this
* Pick an user
* Move all ALT messages from that user mailbox to MAIN storage location (doveadm altmove -r)
* Use doveadm altmove with zstd to recompress messages to ALT
I have picked an user, and tried this:
/usr/bin/doveadm altmove -r -u myuser all
But it did not work. I expected with that command to move ALL messages from ALT storage to main storage, but 0 messages moved, checked with du -ksh
What is the proper way to recompress messages in ALT storage in mdbox?
doveconf -n output:
auth_cache_negative_ttl = 10 secs
auth_cache_size = 10 M
auth_cache_ttl = 2 mins
auth_master_user_separator = *
auth_worker_max_count = 5500
base_dir = /var/run/dovecot/
default_client_limit = 5000
default_process_limit = 6500
disable_plaintext_auth = no
imap_capability = +XLIST
imap_client_workarounds = tb-extra-mailbox-sep delay-newmail tb-lsub-flags
imap_id_log = *
imap_max_line_length = 92 k
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_fsync = never
mail_gid = entrega
mail_home = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario
mail_location = mdbox:/buzones_primarios/%2.26Hn/%2.200Hn/%n:ALT=/buzones_secundarios/%2.26Hn/%2.200Hn/%n:INDEX=/indices_correo/%2.26Hn/%2.200Hn/%n:ITERINDEX
mail_log_prefix = "%s(%u)<%{session}>: "
mail_max_userip_connections = 2500
mail_plugins = " zlib acl quota virtual"
mail_uid = entrega
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date
mdbox_rotate_interval = 1 days
mdbox_rotate_size = 60 M
namespace {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox SPAM {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = /etc/dovecot/deny
deny = yes
driver = passwd-file
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
passdb {
args = /etc/usuario_maestro.txt
driver = passwd-file
master = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
plugin {
acl = vfile
lda_mailbox_autosubscribe = yes
quota = dict:Cuota de usuario::file:/indices_correo/cuotas/%n
quota_rule2 = Trash:storage=+10%%
quota_warning = storage=90%% aviso_cuota 90 %u
sieve = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/dovecot.sieve
sieve_dir = /buzones_primarios/%2.26Hn/%2.200Hn/%n/home_usuario/sieve/
sieve_max_redirects = 20
zlib_save = gz
zlib_save_level = 1
}
pop3_no_flag_updates = yes
protocols = pop3 imap sieve
service anvil {
client_limit = 25000
}
service auth {
client_limit = 32000
unix_listener auth-master {
user = entrega
}
unix_listener auth-userdb {
user = entrega
}
user = root
}
service aviso_cuota {
executable = script /usr/local/bin/quota-warning.sh
unix_listener aviso_cuota {
mode = 0666
}
user = entrega
}
service config {
process_min_avail = 4
}
service imap-login {
executable = /usr/libexec/dovecot/imap-login
group = dovenull
process_min_avail = 2
service_count = 0
vsz_limit = 1 G
}
service imap {
executable = /usr/libexec/dovecot/imap
process_limit = 8000
process_min_avail = 12
vsz_limit = 1 G
}
service managesieve-login {
executable = /usr/libexec/dovecot/managesieve-login
inet_listener sieve {
port = 2000
}
process_limit = 2000
vsz_limit = 1 G
}
service managesieve {
executable = /usr/libexec/dovecot/managesieve
process_limit = 5000
}
service pop3-login {
executable = /usr/libexec/dovecot/pop3-login
process_limit = 5000
process_min_avail = 2
service_count = 0
vsz_limit = 1 G
}
service pop3 {
executable = /usr/libexec/dovecot/pop3
process_limit = 5000
}
service stats {
fifo_listener stats-mail {
mode = 0600
user = entrega
}
}
ssl_ca = </etc/pki/tls/certificado_europa_2020/CadenaCompletaCA3.crt
ssl_cert = </etc/pki/tls/certificado_europa_2020/full_chain.pem
ssl_cipher_list = ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
userdb {
args = /etc/dovecot/dovecot-ldap-userdb.conf
driver = ldap
}
verbose_proctitle = yes
protocol sieve {
managesieve_implementation_string = dovecot
managesieve_logout_format = bytes=%i/%o
managesieve_max_line_length = 64 k
}
protocol lda {
hostname = XXXX
info_log_path =
log_path =
mail_fsync = optimized
mail_plugins = sieve zlib quota virtual
postmaster_address = correo@XXXX
syslog_facility = mail
}
protocol imap {
mail_plugins = zlib quota imap_quota virtual
}
protocol pop3 {
mail_plugins = zlib quota virtual
pop3_enable_last = yes
pop3_uidl_format = %g
}