POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS
Publicado por Alessandro Dias 16/05/2005
[ Hits: 3.764 ]
Download delete_all_users_date_90.sh
Apaga as mensagens de todas as pastas dos usuários com mais de 90 dias, guardando as mensagens em um arquivo chamado .apagadas, a lista de pastas é exibida na tela. Esse script é executado diariamente.
#!/bin/sh # ############################################################################### # Script DELETE_ALL_DATE_90.SH v1.0 # # # # Autor: Alessandro Dias # ############################################################################### # BASEDIR=/var/mail clear echo "*********************************************************************************************" echo "* Programa DELETE_ALL_DATE_90 1.0 *" echo "*********************************************************************************************" echo "Autor: Alessandro Dias" echo "---------------------------------------------------------------------------------------------" k=24 # pula usuarios do sistema USERNAME="teste" # inicializa USERNAME TODOS=`cat /etc/passwd | cut -d : -f 1` while [ "$USERNAME" != "" ]; do USERNAME=`echo $TODOS |cut -d " " -f $k` GRUPO=`groups $USERNAME |cut -d " " -f 3` if [ "$GRUPO" = "popusers" ]; then echo " ----- Usuário $USERNAME -----" echo -e "---------------------------------------------------------------------------------------------" ARQUIVOS=$BASEDIR/$USERNAME ARQUIVOS="$BASEDIR/$USERNAME"" "`ls /home/$USERNAME/mail/*` l=1 ARQUIVO=`echo $ARQUIVOS | cut -d " " -f $l` while [ "$ARQUIVO" != "" -a "$ARQUIVO" != " " ]; do if [ "$USERNAME" != "" ]; then echo "Analizando o arquivo: $ARQUIVO" #Verifica as Msgs INICIO=1 NLINHAS=1000 i=0 while [ "$INICIO" != "$NLINHAS" ]; do i=`expr $i \+ 1` j=`expr $i \+ 1` LINHAS=`grep -n "From " $ARQUIVO | cut -d ":" -f 1` NLINHAS=`wc -l $ARQUIVO` NLINHAS=`echo $NLINHAS | cut -d " " -f 1` LINHAS="$LINHAS $NLINHAS" INICIO=`echo $LINHAS | cut -d " " -f $i` if [ "$INICIO" = "$NLINHAS" ]; then echo -e "---------------------------------------------------------------------------------------------" else FIM=`echo $LINHAS | cut -d " " -f $j` VALOR_TMP=`sed -n -e "$INICIO""p" $ARQUIVO` MES=`echo $VALOR_TMP | cut -d " " -f 4` ASSUNTO=`sed -n -e "$INICIO,$FIM""p" $ARQUIVO | grep "Subject:" | cut -d : -f 2` case $MES in Jan) MES=1 ;; Fev) MES=2 ;; Mar) MES=3 ;; Apr) MES=4 ;; Abr) MES=4 ;; May) MES=5 ;; Mai) MES=5 ;; Jun) MES=6 ;; Jul) MES=7 ;; Aug) MES=8 ;; Ago) MES=8 ;; Sep) MES=9 ;; Set) MES=9 ;; Oct) MES=10 ;; Out) MES=10 ;; Nov) MES=11 ;; Dez) MES=12 ;; esac VALOR_TMP=`sed -n -e "$INICIO""p" $ARQUIVO` DIA=`echo $VALOR_TMP | cut -d " " -f 5` ANO=`echo $VALOR_TMP | cut -d " " -f 7` HJ_ANO=`date +%Y` HJ_MES=`date +%m` HJ_DIA=`date +%e` DIF_ANO=`expr $HJ_ANO - $ANO` DIF_MES=`expr $HJ_MES - $MES` DIF_DIA=`expr $HJ_DIA - $DIA` TEMPO1=`expr $DIF_ANO \* 360` TEMPO2=`expr $DIF_MES \* 30` TEMPO3=$DIF_DIA TEMPO=`expr $TEMPO1 \+ $TEMPO2 \+ $TEMPO3` echo -e "\n Mensagem $i - Data: $DIA/$MES/$ANO - $TEMPO dias - Linhas $INICIO-$FIM" echo -e " Assunto: $ASSUNTO" if [ $TEMPO -ge 90 ]; then # se a msg tiver mais de 60 dias apagar if [ "$FIM" != "$NLINHAS" ]; then # se não é a ultima msg, não apaga a linha em branco FIM=`expr $FIM - 1` fi sed -n -e "$INICIO,$FIM""p" $ARQUIVO >> $ARQUIVO.apagadas echo " " >> $ARQUIVO.apagadas sed -e "$INICIO,$FIM""d" $ARQUIVO >> $ARQUIVO.tmp mv -f $ARQUIVO.tmp $ARQUIVO i=`expr $i - 1` j=`expr $j - 1` echo " << Mensagem com mais de 90 dias - APAGADA >>" fi fi done else echo -e "\nEntre com a sintaxe correta do comando:\n./delete_date.sh <nome_usuario>\n" fi l=`expr $l \+ 1` ARQUIVO=`echo $ARQUIVOS | cut -d " " -f $l` done fi k=`expr $k \+ 1` done
ping alarme - avisa quando o ip esta offline e gera log
Script gera uma chave md5 de todos os arquivos que forem especificados
Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quando vocês pararam de testar distros? (14)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









