Limpar fila de email

Publicado por Felipe Lima (última atualização em 15/10/2011)

[ Hits: 11.722 ]

Homepage: http://felipefls.wordpress.com

Download lfila.sh




Estava tendo problemas no servidor de email da empresa e, de vez quando, tinha que limpar a fila de email. Para isso, criei um script simples e fácil de utilizar.

  



Esconder código-fonte

#!/bin/bash

###########################################################
# Script para limpar a fila de email quando esta tiver emails que nunca serao entregues
# Autor: Felipe Lima   Email: felipe@fls.eti.br
# Versao: 0.1   Data: 28/09/2011





########################## Como funciona este Script ###################
# Este script serve para excluir emails da fila de Email do Postfix que estao destinados              
# para enderecos que nao existem no servidor de Email.                                  
# Funciona da seguinte forma: este script deve ser executado com o nome que deseja excluir    
# da fila. Exemplo: Voce quer limpar a fila daqueles emails que o destinatario nao existe,          
# e que estao setados como MAILER-DAEMON, entao execute o script da seguinte forma:     
# ./lfila.sh MAILER    e pressione <ENTER> para executar. Todos os emails que tiverem          
# setados como MAILER serão excluidos. O mesmo vale para usuário ou dominio.               
##############################################################



####################### Core do Script #############################

# Esta variavel ira pegar o nome que voce digitou para excluir os emails.

NOME=$1


# Aqui ele ira imprimir a lista de email que contiver o nome digitado e irá jogar para um
# arquivo que será criado com o mesmo nome da variavel.

postqueue -p | grep $NOME >> $NOME


# Aqui o Script ira cortar as colunas de 1 a 10 (que sao as colunas que tem o numero do         
# email que esta na fila, que sera usado para exlcuir) e ira jogar para um novo arquivo           
# que sera criado com o nome da variavel com a extencao sh              

cut -c 1-10 $NOME >> $NOME.sh



# Agora, ele ira inserir o comando "postsuper -d " no comeco de todas as linhas do      
# arquivo. Este é o comando do Postfix usado para excluir email da fila.        

sed -i 's/^/postsuper -d /' $NOME.sh


# Agora, estamos dando permissao de execucao no arquivo que criamos para exlcuir emails.

chmod +x $NOME.sh



# Executando o arquivo e excluindo os emails coletados da fila.            

. $NOME.sh



# Excluindo os arquivos criados.

rm -rf $NOME
rm -rf $NOME.sh



################################## Fim do Script ##########################################

Scripts recomendados

SED: Números por extenso

Monitora Ping

Mosta o IP e o MAC address

Verifica os maiores arquivos no diretório informado

While


  

Comentários
[1] Comentário enviado por hellnux em 23/10/2011 - 15:04h

Olá Felipe,

Interessante o script. Ele cria um outro script e o executa. Não tem como eu testar e também não conheço a saída do comando postqueue -p, mas acredito que o comando abaixo também dê:

postqueue -p | grep $NOME | cut -c 1-10 $NOME | xargs postsuper -d

[2] Comentário enviado por felipefls em 24/10/2011 - 09:39h

Opa!!!

A saída do postqueue -p é a mesma do mail -q (acho que é assim), ele mostra a fila de emails do postfix. Assim que possível, vou testar o comando que você postou!!!!

E obrigado pela dica....a minha intenção foi compartilhar para melhorar!!!! Vlw


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts