Ir para o conteúdo
ou

Software livre Brasil

0 integrantes

Nenhum(a)

Red Hat Magazine

redirection forbidden: http://www.redhat.com/magazine/rss20.xml -> https://www.redhat.com/magazine/rss20.xml

 Voltar a torontux
Tela cheia Sugerir um artigo

Script para apagar mensagens antigas no Qmail/Vpopmail

27 de Abril de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 422 vezes
   Hoje vamos abordar uma necessidade muito comum aos sysadmins que trabalham em grandes corporações, apagar mensagens antigas de um servidor POP3 vpopmail. Geralmente quem usa o Qmail se depara com esta situação e após algumas horas "googlando", não encontrei muita coisa que facilitasse a minha vida e de meus colegas de labuta.
   Decidi fazer um pequeno script que automatizasse tal tarefa, e como de costume, vou compartilhar descrevendo cada trecho de código.
OBS1: Vamos apagar as mensagens do vpopmail, quem usa IMAP (Courier por exemplo) precisa de algumas implementações de código tendo em vista que o usuário de pode criar pastas no servidor através do cliente. Tem uma constante logo no início do código onde você diz quais são as pastas que serão verificadas dentro do laço de repetição.
OBS2: Lembro que estamos usando o vpopmail com Maildir e autenticação cdb, sendo assim, este script não vai funcionar para quem usa MySQL/vpopmail.


Segue abaixo:

#!/bin/bash
############################################
# Script para apagar mensagens no vpopmail #
# -----------------------------------------#
# Autor: Toronto Garcez de Meneses Vercosa #
#   Data: 23.04.201                        #
############################################
#
# Constantes
#


DOMINIO=$1
PATH_DOMAINS=/var/qmail/vpopmail/domains/ #Pastas dos dominios
DIRS="cur new tmp"
DAYS="90"  # Qt. de dias para um mensagem ser considerada antiga - 3 meses pra mim
# Main


if [ $DOMINIO <> " " ]
  then
    if [ ! -e $PATH_DOMAINS$DOMINIO/vpasswd ]
       then
          echo "Este dominio nao existe!"
       else
          cat $PATH_DOMAINS$DOMINIO/vpasswd |grep -v "Postmaster"|awk -F":" '{print $6}' |while read LINHAS
             do 
             # Para cada pasta colocada na constante DIRS eh feita uma varredura 
                for DIR in $DIRS
                  do
                    find $LINHAS/Maildir/$DIR -mtime +$DAYS -exec rm {} \;
                  done
             done
    fi
fi

Basta executar esse script passando como parâmetro o nome do domínio que você quer limpar.
Ex:
[root@XFSr00t ~]# ./script.sh exemplo.com.br

;)

Fonte: http://torontux.blogspot.com/2010/04/script-para-apagar-mensagens-antigas-no.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.