[Qmail-it] Cancellare contenuto caselle piene.

Valerio Felici valerio at bgweb.it
Tue Nov 21 14:30:56 CET 2006


Alle 13:32, martedì 21 novembre 2006, Simone Maillaro ha scritto:
> Salve ragazzi, sapete se c'è un modo per poter svuotare la casella di
> posta elettronica cur/new senza andarlo a fare a mano? Mi ritrovo 1200
> accounts di utenti che non controllano la posta dal 2004 e sinceramente
> vorrei evitare di fare un rm di ogni casella sennò divento pazzo.
> Magari un pannello vi web che mi fa vedere l'ultima autenticazione e
> che poi mi permetta di svuotare tutto. Grazie.
>
già passato in lista qualche tempo fa, ecco la soluzione che uso io, 
ovviamente perfezionabile e da adattare alle proprie esigenze:

#!/bin/bash
# dove sono i miei domini?
BASEDIR = /un/qualche/posto/del/filesystem
# in ./elencoDominiConPosta.txt ho l'elenco dei domini di cui ho anche gli
# utenti per il servizio di posta
for i in $(awk 'BEGIN{FS=":"}{print $1}' < ./elencoDominiConPosta.txt)
do
   # non voglio essere bastardo con tutti, alcuni possono tenere la posta
   # anche se è di 5 secoli fa, così in ./elencoDominiConPostaDaTenere.txt
   # ho l'elenco dei domini "amici"
   if grep -q $i ./elencoDominiConPostaDaTenere.txt
   then
    echo "$i LO TENGO."
   else
    echo "$i è da buttare."
    # mi sposto nella dir users
    cd $BASEDIR/$i/users
    # trovo tutti i files più vecchi di 100 giorni e metto il loro nome
    # in un file temporaneo, il matching col nome forse potrebbe essere
    # migliorato anche perchè ad 11.... ci siamo arrivati durante il 2004.
    # Nel mio caso le mailbox sono all'interno della directory users.
    find -name "11*" -type f -mtime +100 > /tmp/vecchieMail-$i.txt
    # creo un archivio compresso e lo deposito nella dir /oldMail, non 
    # si sa mai
    tar -cj -T /tmp/vecchieMail-$i.txt -f /oldMail/$i.tar.bz2
    # elimino l'elenco nel file temporaneo
    rm -f /tmp/vecchieMail-$i.txt
    # elimino le vecchie mail...addio :-)
    # magari prima è meglio provare lo script commentando la riga seguente
    # in modo di provarlo "a secco".
    find  -name "11*" -type f -mtime +100 | xargs -n 1 rm -f
   fi
done
echo -n "Fine!"


-- 
A presto
-Valerio-


More information about the Qmail-it mailing list