Gerenciamento de espaço em disco no cPanel: como automatizar a limpeza de e-mails com queries do Dovecot
Voltar para blog

Gerenciamento de espaço em disco no cPanel: como automatizar a limpeza de e-mails com queries do Dovecot

07/06/2026 · 6 min · Infraestrutura

Esgotamento de disco por e-mails antigos é um incidente recorrente em servidores de hospedagem. A causa nem sempre é volume novo: muitas vezes a automação de limpeza parou silenciosamente.

No caso analisado, scripts de manutenção foram removidos ou movidos em migrações anteriores. O resultado foi o acúmulo contínuo de arquivos em lixeiras, além de logs descontrolados e contas específicas atingindo limites físicos rapidamente. A correção imediata foi restaurar rotinas de limpeza por cron no servidor e implantar políticas proativas.


1) Diagnóstico de espaço em disco e cota#

Antes de iniciar qualquer expurgo de e-mails, o administrador deve mapear com precisão onde estão localizados os gargalos de armazenamento da partição do sistema.


1.1 verificação de espaço geral#

Para auditar o consumo de blocos no ponto de montagem principal que abriga os arquivos de e-mail dos usuários em home:

df -h /home

Identifique as 10 contas de e-mail mais volumosas no filesystem:

du -sh /home/*/mail/ | sort -rh | head -10

Para listar as contas que já consomem volumes superiores a 1GB:

du -sh /home/*/mail/ | awk '$1 ~ /G/ {print}'

1.2 verificação de quotas do Dovecot e cPanel#

Para auditar se as limitações lógicas estão sendo enforcadas corretamente em nível de sistema operacional e servidor de correio:

  1. Checar Quota Ativa do Usuário:
   doveadm quota get -u [email protected]
  1. Consultar Limites Físicos de Quota no Filesystem:
   repquota -a | grep usuario
  1. Ajuste de Quotas via GUI ou CLI do cPanel:

As quotas podem ser redefinidas individualmente por domínio no WHM acessando WHM > Modify an Account > Quota para evitar que um único usuário monopolize os blocos da partição.


1.3 verificação de outros focos de consumo no disco#

Não restrinja o diagnóstico apenas aos diretórios do Maildir. Verifique resíduos e arquivos órfãos grandes acumulados no servidor:

  1. Auditoria de Logs Volumosos em log:
   find /var/log -name "*.log" -size +100M -exec ls -lh {} \;
  1. Limpeza de Arquivos Temporários Antigos em tmp:
   find /tmp -type f -mtime +7 -exec rm -f {} \;
  1. Localização de Backups Antigos não Rotacionados:
   find /backup -name "*.tar.gz" -mtime +30 -exec rm -f {} \;

2) Triagem e verificação da saúde do Dovecot e cPanel#

Para garantir que os comandos do validador de correio funcionem, certifique-se de que os daemons de identidade e os utilitários do painel estejam operando de forma estável.


2.1 verificação de status e versão do Dovecot#

Para auditar a saúde do Dovecot via SSH:

# Consultar status do daemon
systemctl status dovecot

# Verificar a versão instalada
doveadm --version

# Exibir configurações ativas (excluindo os padrões)
doveconf -n | head -20

# Filtrar o log de correio por erros do Dovecot
tail -50 /var/log/maillog | grep -iE "error|dovecot"

2.2 verificação de versão e ferramentas do cPanel#

Valide a consistência das ferramentas administrativas do painel:

# Consultar versão ativa do painel cPanel
cat /usr/local/cpanel/version

# Verificar status de atualizações pendentes do sistema
/scripts/upcp --status
Nota de uso: Garanta que a ferramenta visual de gerenciamento esteja ativa acessando WHM > Email > Email Disk Usage na interface web do administrador.

3) Protocolo de segurança e backups preventivos#

Qualquer script de limpeza em lote ou expurgo de base de mensagens deve ser precedido por uma rotina estrita de segurança para evitar exclusão acidental de correspondências comerciais críticas.


3.1 backup preventivo de contas de e-mail#

Execute o backup físico recursivo compactado de diretórios de e-mail das contas de usuários do sistema antes de aplicar as queries:

  1. Backup Geral de Todas as Contas do Diretório Mail:
   for user in $(ls /home/); do
       if [ -d "/home/$user/mail" ]; then
           tar czf /root/mail-backup-$user-$(date +%Y%m%d).tar.gz /home/$user/mail/
       fi
   done
  1. Backup Cirúrgico Via doveadm para Conta Específica:
   doveadm backup -u [email protected] -f maildir:/root/backup/

4) Limpeza nativa no cPanel com Dovecot queries#

O Email Disk Usage do cPanel aceita consultas customizadas baseadas na sintaxe nativa de busca do Dovecot para purgar mensagens com granularidade.


4.1 limpeza por tempo#

savedbefore 30d

Remove mensagens cujo timestamp de gravação no diretório (save date) é anterior a 30 dias.


4.2 limpeza por remetente#

from "[email protected]"

Filtragem cirúrgica para purgar alertas redundantes de sistemas de monitoramento e logs automáticos.


4.3 lixeira e spam com filtro inteligente#

Na pasta Trash (Lixeira) ou Junk (Spam), use:

all

Para apagar incondicionalmente todo o conteúdo da pasta selecionada. Ou aplique filtros combinados de conservação:

seen savedbefore 15d

Apaga apenas correspondências que já foram visualizadas (seen) e que estão retidas há mais de 15 dias, evitando o expurgo acidental de correspondências descartadas recentemente.


5) Limpeza avançada e automatizada#


5.1 CLI avançada via doveadm#

As operações aplicadas no painel gráfico podem ser orquestradas remotamente em lote por meio da linha de comando:

  doveadm expunge -u [email protected] mailbox INBOX savedbefore 30d

5.2 automação via cron job#

Para automatizar a limpeza preventiva de mensagens antigas em lote de todas as contas do servidor cPanel, crie o script central em cleanup-emails.sh:

cat > /usr/local/bin/cleanup-emails.sh << 'EOF'
#!/bin/bash
# Localizar e expurgar mensagens com mais de 30 dias de todas as contas em lote
doveadm -A search savedbefore 30d | while read user mailbox; do
    doveadm expunge -u "$user" mailbox "$mailbox" savedbefore 30d
done
EOF

chmod +x /usr/local/bin/cleanup-emails.sh

Agende no cron do root para executar diariamente às 3:00 da manhã:

echo "0 3 * * * /usr/local/bin/cleanup-emails.sh" | crontab -

Confirme o agendamento ativo:

crontab -l

5.3 validação e pós-limpeza#

Após a execução programática ou manual dos comandos de expurgo, valide se o armazenamento foi devidamente recuperado:

  1. Comparar espaço em disco antes/depois:
   df -h /home
  1. Reavaliar tamanho dos diretórios físicos:
   du -sh /home/*/mail/
  1. Contar mensagens remanescentes da query de expurgo:
   doveadm search -u [email protected] INBOX "savedbefore 30d" | wc -l
  1. Validar logs de transações em maillog:
   tail -50 /var/log/maillog | grep -iE "error|fail"

5.4 monitoramento proativo#

Para alertar preventivamente a equipe de suporte sobre contas de e-mail que estão expandindo rapidamente antes de atingirem o limite da partição, instancie o script check-email-disk.sh:

cat > /usr/local/bin/check-email-disk.sh << 'EOF'
#!/bin/bash
# Contar quantas contas possuem Maildirs maiores que 1GB
USAGE=$(du -sh /home/*/mail/ 2>/dev/null | awk '$1 ~ /G/ {count++} END {print count+0}')
THRESHOLD=5

if [ "$USAGE" -gt "$THRESHOLD" ]; then
    echo "ALERTA: Detectadas $USAGE contas de e-mail consumindo mais de 1GB no cPanel." | \
      mail -s "Email Disk Alert" [email protected]
fi
EOF

chmod +x /usr/local/bin/check-email-disk.sh

Agende a varredura preventiva diária às 6:00 da manhã:

echo "0 6 * * * /usr/local/bin/check-email-disk.sh" | crontab -

6) Governança: políticas de retenção de e-mails#

A automação de limpeza deve seguir regras e políticas de retenção corporativas acordadas previamente com o setor jurídico e de compliance:

Matriz de retenção recomendada por tipo de caixa#

Departamento / FinalidadeTempo de Retenção (Inbox)Tempo de Retenção (Trash)Tempo de Retenção (Spam)Frequência de Execução
Suporte Técnico (Tickets)90 dias30 dias7 diasDiária (Spam) / Semanal (Trash)
Financeiro e Faturamento365 dias90 dias30 diasSemanal (Spam) / Mensal (Trash)
Geral / Caixas Pessoais60 dias15 dias7 diasDiária (Spam) / Semanal (Trash)

7) Checklist de limpeza e matriz de riscos#

Checklist operacional de limpeza de e-mails#

Matriz de riscos de armazenamento de e-mails#

Ameaça / Risco de OperaçãoSeveridadeImpacto EstimadoAção de Mitigação Técnica
Exclusão de E-mails VálidosCríticaPerda permanente de correspondências corporativas críticas.Backups preventivos físicos antes de rodar as queries e aplicação de testes de visualização prévia.
Esgotamento de Disco (Full)AltaQueda total de todos os serviços de correio do cPanel (MTA, IMAP, POP3).Monitoramento proativo via cron diário, cotas de disco e purga automatizada.
Erros de Permissões MaildirMédiaUsuários não conseguem apagar e-mails via Webmail/Outlook.Varredura com chown recursivo para usuario:mail pós-rsync de backups.
Travamento do DovecotMédiaInterrupção imediata da autenticação e sincronização IMAP.Validação prévia de sintaxe do doveconf -n antes do restart e logs auditados.

Gerenciar armazenamento de e-mail no cPanel exige método. Ao aliar o diagnóstico estruturado, backups isolados, execução programática de queries do Dovecot e regras claras de governança, você blinda a infraestrutura contra falhas críticas de indisponibilidade por disco cheio.

Este artigo foi útil?

Deixe uma reação rápida para apoiar o conteúdo:

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.

0 comentários