Removendo e-mails da fila do queue
Publicado por Gustavo Pardellas Feijó 25/04/2008
[ Hits: 14.236 ]
Homepage: http://www.gldc.com.br
Download remove_by_email-1.0.sh
Algumas vezes algum script gera um erro e começa a disparar e-mails, o que acaba "entupindo" o diretório queue do seu servidor de e-mails.
Este script foi desenvolvido para remover as mensagens da fila, tomando como base o endereço que se quer remover.
Foi testado com o postfix e o sendmail, bastando alterar a variável referente ao diretório queue do seu servidor.
Comentários e melhorias são bem vindos.
#!/bin/bash ## remove_by_email.sh ## remove emails da fila queue. ## recebe como parametro um endereco ## de e-mail para remover. ## Desenvolvido por Gustavo Feijo ## chmod@gfeijo.eti.br ## Diretorio queue do servidor de e-mail QUEUE_DIR=/var/spool/postfix ENDERECO=$2 if [ $UID != 0 ] then echo -e "Desculpe, voce precisa ser root!!" exit 1 fi if [ ! $1 ] then echo -e "Por favor, especifique um endereco para remover:\n Usage: $0 [ --from | --to ] 'usuario@provedor.com.br'\n" exit 2 fi echo -e "Procurando por mensagens a remover..." case $1 in --from) QUEUE_FILES=( ${QUEUE_FILES[@]} `/usr/bin/mailq | grep ${ENDERECO} | awk '{print $1}'` ) ;; --to) QUEUE_FILES_TO=( ${QUEUE_FILES_TO[@]} `/usr/bin/mailq | grep ^[0-9A-F] | awk '{print $1}'` ) for i in ${QUEUE_FILES_TO[@]}; do tmp=`/usr/bin/find ${QUEUE_DIR} -type f -name ${i} -exec grep "recipient=${ENDERECO}" {} \;` if [ ! -z $tmp ] then QUEUE_FILES=( ${QUEUE_FILES[@]} `echo ${i}` ) fi done ;; *) echo "Parametro invalido \"$1\"" echo -e "Usage: $0 [ --from | --to ] 'usuario@provedor.com.br'\n" exit 3 ;; esac QT_MSG=${#QUEUE_FILES[*]} if [ -z $QUEUE_FILES ] then echo -e "Nenhuma mensagem encontrada.\n" exit 1 else echo -e "Removendo ${QT_MSG} mensagens.\nPor favor aguarde..." faltam=${QT_MSG} fi for LOCATOR in ${QUEUE_FILES[@]}; do `/usr/bin/find ${QUEUE_DIR} -type f -name ${LOCATOR} -delete`; let "faltam = ${faltam} - 1" echo -ne "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b" echo -ne "Faltam: " printf "%10d" "${faltam}" done echo '' exit 0
Montar pasta remota NFS em Zenity
Screenshot com contagem regressiva e mensagens
Compactar e descompactar arquivos de forma simples
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta