Exim - Removendo todas as mensagens da fila de espera (spool)
Dica publicada em Linux / Avançado
Exim - Removendo todas as mensagens da fila de espera (spool)
Hoje fui fazer manutenção num servidor de e-mail Exim4 e após corrigir a configuração do SMTP, fechando o relay, percebi que haviam cerca de 50 mil mensagens em fila de espera, em que quase a totalidade era composta por SPAM.
Antes de habilitar o serviço foi necessário fazer a remoção destas mensagens. Como fazer? Simples!
Para listar todas as mensagens em fila de espera:
# exim -bp
Exemplo de output:
# exim -Mrm {message-id}
No caso acima, a primeira mensagem possui como ID "1YiCOR-0006Aw-0j". O comando ficaria assim:
# exim -Mrm 1YiCOR-0006Aw-0j
Para remover TODAS as mensagens da fila de espera:
# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash
Em alguns casos onde o spool está infestado de arquivos, o comando supracitado pode demorar muito para executar. Nestes casos a forma mais rápida de se remover todas as mensagens é limpando todo o conteúdo do diretório.
Método 1:
# cd /var/spool/exim/input
# rm -Rf *
Método 2:
# cd /var/spool/exim/input
# find . -type f -exec rm {} \;
# find . -type d -exec rm -Rf {} \;
Fonte: Exim Remove All messages From the Mail Queue - cyberciti.biz
Um abraço.
Antes de habilitar o serviço foi necessário fazer a remoção destas mensagens. Como fazer? Simples!
Para listar todas as mensagens em fila de espera:
# exim -bp
Exemplo de output:
6m 2.9K 1YiCOR-0006Aw-0j <dtrzwpx@yandex.ru>
pko74@list.ru
carlito@ngs.ru
7775715@bk.ru
sales@techauto.rbauto.ru
jemchyg-stc@mail.ru
2391640a@mail.ru
5m 3.1K 1YiCPJ-0006C7-Jf <yxnxbavbn@yandex.ru>
info@kinder-store.ru
madou59@mail.ru
zooskazka@mail.ru
martinenko-avto@rambler.ru
zakaz@bestparts.ru
panterapaintball@mail.ru
Para remover uma mensagem em particular:
# exim -Mrm {message-id}
No caso acima, a primeira mensagem possui como ID "1YiCOR-0006Aw-0j". O comando ficaria assim:
# exim -Mrm 1YiCOR-0006Aw-0j
Para remover TODAS as mensagens da fila de espera:
# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash
Resolução de problemas
Cada e-mail armazenado no Exim4 é composto por dois arquivos plain-text. Eles ficam no diretório /var/spool/exim/input e possuem o seguinte formato:- 1YiCOR-0006Aw-0j-H :: ID da mensagem com final "-H", corresponde aos headers do e-mail;
- 1YiCOR-0006Aw-0j-D :: ID da mensagem com o final "-D", corresponde ao corpo (e anexos) do e-mail.
Em alguns casos onde o spool está infestado de arquivos, o comando supracitado pode demorar muito para executar. Nestes casos a forma mais rápida de se remover todas as mensagens é limpando todo o conteúdo do diretório.
Método 1:
# cd /var/spool/exim/input
# rm -Rf *
Método 2:
# cd /var/spool/exim/input
# find . -type f -exec rm {} \;
# find . -type d -exec rm -Rf {} \;
Fonte: Exim Remove All messages From the Mail Queue - cyberciti.biz
Um abraço.
Agora quando tiver muitas mensagens na fila, talvez seja mais rápido parar o exim, renomear o spool e recriar a estrutura de diretórios.