Páginas

terça-feira, 26 de março de 2013

Gerenciando as filas do POSTFIX

Para quem recebe uma grande demanda de emails diariamente ou até mesmo rastrear o envio ou recebimento de um email é sempre bom saber como fazer isso. O postfix conta com alguns utilitários em sua instalação que nos ajuda a fazer estas tarefas, também é claro que existem outras ferramentas do nosso próprio linux que podem nos auxiliar.

Em primeiro lugar vamos ver onde ficam as pastas das filas:

No meu caso que estou utilizando a distribuição baseada no redhat, o CentOS 4.6 a licalização dos diretórios ficam em:

/var/spool/postfix

Dentro desta pasta existem inúmeros diretórios, vamos ver alguns importantes:

incoming - Esta file contém todos os emails novos que entram na fila do postfix. Eles são armazenados pelo processo cleanup.
active - Esta file contém todos os e-mails que foram abertos pelo gerenciador da fila para entrega. 
deferred - Esta fila armazena todos os emails que por algum motivo não puderam ser entregues aos seus receptores.
corrupt - As mensagens que não podem ser lidas ou danificadas são colocadas nesta fila.
hold - Esta fila é usada pelos administradores para por mensagens em espera até que alguém especifique que ela deva ser liberdada. Esta fila é muito usada por programas de checagem de mensagens, como o MailScanner, Clamav, etc... antes de serem entregues para o usuário.


Bom, agora que já aprendemos um pouco sobre a função de cada pasta vamos nos deter nos aplicativos para controlar as mensagens.

Na instalação do postfix já vem com vários aplicativos que iremos detalhar seu uso abaixo:

postqueue - Postfix Queue Control
postsuper - Postfix Superintendent
qshape - Print Postfix queue domain and age distribuition


Postfix Queue Control

postqueue -p -> comando usado para verificar a fila de emails

postqueue -f -> comando usado para dar um flush, ou seja, tenta entregar todos os emails da fila.
postqueue -s dominio -> comando usado para iniciar a entrega imediata de mensagens de um determinado domínio.

postqueue -v -> Habilita modo verbose para debug.




Postfix Superintendent
postsuper -h queue_id -> comando usado para colocar uma mensagem em espera.

postsuper -H queue_id -> Comando usado para tirar uma mensagem da espera.

postsuper -p -> comando usado para dar um purge nos arquivos temporários.

postsuper -d queue_id -> comando usado para deletar uma mensagem da fila.

postsuper -r queue_id -> comando usado para enfileirar novamente as mensagens.

postsuper -s -> comando usado para checar a estrutura e reparar caso haja erros.

postsuper -v -> Habilita modo verbose para debug.


Print Postfix queue domain and age distribuition

Por último temos o comando qshape, podemos usá-lo para ver as filas.

qshape active -> mostra o conteúdo da fila active. 
qshape incoming -> mostra o conteúdo da fila incoming.
qshape hold -> mostra o conteúdo da fila hold.
qshape deferred -> mostra o conteúdo da fila deferred.
qshape -s -> mostra os domínios de destino.



Exemplo de filtros

Com o auxílio do comando find podemos fazer uma busca nas filas por um determinado email e depois apagá-lo com mostra o comando abaixo:

# find /var/spool/postfix -type f | xargs -n 1000 grep -l email@dominio.com.br | sed 's/.*\///g' | postsuper -d -

Para tirarmos da fila de espera um determinado email:
# find /var/spool/postfix -type f | xargs -n 1000 grep -l email@dominio.com.br | sed 's/.*\///g' | postsuper -H -

Excluindo tudo que está em HOLD, ou seja, na fila de espera.

# find /var/spool/postfix/hold -type f | sed 's/.*\///g' | postsuper -H -

Procurar mensagens do domínio teste.com.br
# tail -10000 /var/log/maillog | egrep -i ': from=<.*@teste\.com\.br>,' | less

Procurar uma mensagem por um específico queue_id
# tail -10000 /var/log/maillog | egrep ': 2B2173FF68: '

Verificar possíveis problemas.
# egrep 'qmgr.*(panic|fatal|error|warning):' /var/log/maillog


fonte : http://marcosabadi.blogspot.com.br/2008/11/gerenciando-as-filas-do-postfix.html

Nenhum comentário:

Postar um comentário