Script di pulizia Spool Amavisd: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
Line 11: Line 11:
cat > /usr/local/sbin/amavisd-clean <<'EOFile'
cat > /usr/local/sbin/amavisd-clean <<'EOFile'
#!/bin/bash
#!/bin/bash
# amavisd-clean v 2.1.1
# amavisd-clean v 3.0.0
#
# ----------------------------------------------------------------------------
# Cambiare il valore di DAY_TO_KEEP
 
if test -f /etc/amavisd-clean.conf ; then
. /etc/amavisd-clean.conf
else
DAY_TO_KEEP=7
DAY_TO_KEEP=7
#
fi
# Fine parametri configurabili
 
# --------------------------------------------------------------------------------------
DATAOGGI=`date +'%Y%m%d'`
DATAOGGI=`date +'%Y%m%d'`
echo "Cancellazione Quarantine Amavis del $DATAOGGI"
echo "Cancellazione Quarantine Amavis del $DATAOGGI"
Line 35: Line 37:
                 echo "No Viruses to be deleted for today ..."
                 echo "No Viruses to be deleted for today ..."
fi
fi
# Clean bad messages
#/var/lib/amavis/virusmails/w/badh-wlzwv2sIjYve
for DATA in $( find . -name  'badh-*' -mtime +30)
do
echo Deleting bad messages $DATA ...
    /bin/rm -rf $DATA;
done


# Clean spam messages
# Clean spam messages
Line 50: Line 62:
                 echo "No Spam to be deleted for today ..."
                 echo "No Spam to be deleted for today ..."
fi
fi
EOFile
EOFile



Revision as of 11:19, 23 November 2016


Questo script provvede a cancellare i messaggi archiviati contenenti virus e spam più vechhi di $DAY_TO_KEEP giorni


Creazione Script

Creare lo script

cat > /usr/local/sbin/amavisd-clean <<'EOFile'
#!/bin/bash
# amavisd-clean v 3.0.0
# ----------------------------------------------------------------------------

if test -f /etc/amavisd-clean.conf ; then
. /etc/amavisd-clean.conf
else
DAY_TO_KEEP=7
fi

DATAOGGI=`date +'%Y%m%d'`
echo "Cancellazione Quarantine Amavis del $DATAOGGI"
cd /var/lib/amavis/virusmails
# Clean virus messages
# virus-20050531-095125-10340-07
RIGHE=$( find . -name  'virus-20*' | cut -c 9-16 | sort | uniq | wc -l)
RIGHE_DA_CANC=$(($RIGHE - $DAY_TO_KEEP))
if (( $RIGHE > $DAY_TO_KEEP ))
        then
for DATA in $( find . -name  'virus-20*' | cut -c 9-16  | sort | uniq   | head -n $RIGHE_DA_CANC)
                do
                        echo Deleting Virus $DATA ...
                        /bin/rm -rf virus-$DATA-*;
                done
        else
                echo "No Viruses to be deleted for today ..."
fi

# Clean bad messages
#/var/lib/amavis/virusmails/w/badh-wlzwv2sIjYve

for DATA in $( find . -name  'badh-*' -mtime +30)
do
	echo Deleting bad messages $DATA ...
    /bin/rm -rf $DATA;
done


# Clean spam messages
# spam-dff7bb070bf024667c51882c204b0d7f-20050317-100828-05561-06.gz
RIGHE=$( find . -name  'spam-*' | cut -c 41-48 | sort | uniq | wc -l)
RIGHE_DA_CANC=$(($RIGHE - $DAY_TO_KEEP))
if (( $RIGHE > $DAY_TO_KEEP ))
        then
for DATA in $( find . -name  'spam-*' | cut -c 41-48  | sort | uniq   | head -n $RIGHE_DA_CANC)
                do
                        echo Deleting Spam $DATA ...
                        /bin/rm -rf spam-????????????????????????????????-$DATA-*;
                done
        else
                echo "No Spam to be deleted for today ..."
fi

EOFile

chmod 755 /usr/local/sbin/amavisd-clean


Modifcare il valore di DAY_TO_KEEP per definire quanti giorni tenere

Installazione script

Far eseguire lo script tutte le notti alle 03:00AM

cat > /etc/cron.d/amavisd-clean <<'EOFile'
#m      h       dom     mon     dow     user    command
0       3       *       *       *       root    /usr/local/sbin/amavisd-clean > /dev/null
EOFile

Esecuzione manuale dello script

Esempio di cancellazione:

amavisd-clean

Cancellazione Quarantine Amavis del 20050603
Deleting Virus 20050124 ...
Deleting Virus 20050125 ...
...
Deleting Virus 20050525 ...
Deleting Virus 20050526 ...
Deleting Virus 20050527 ...
No Spam to be deleted for today ...