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
;)
0sem comentários ainda