[Postfixbuch-users] cyrus quota script
Stefan Schmidt
s.schmidt at jacobs-university.de
Do Dez 4 17:09:31 CET 2008
Hallo Holm,
On Thursday 04 December 2008 12:23:02 Holm Kapschitzki wrote:
> kennt jemand ein Perlscript, welches von Cyrus die derzeitige Quota /
> Belegung ausliest und dem Mailboxinhaber eine Nachricht sendet, daß
> die Mailbox voll oder zu x% gefüllt ist?
So in der Art. Das Script läuft bei uns ein Mal am Tag per cron und
erstellt eine Hitliste mit den Top-Quota-Usern nach stdout und schickt
Mails an die betreffenden User mit einer Nachricht mit dem Füllstand.
Bei uns haben die User lokale Accounts (mit Shell /bin/false),
Authentifizierung also per saslauthd/PAM, daher hole ich die Namen aus
der /etc/passwd.
Momentan ist die Benachrichtigung auf User mit Quota zwischen 90 und
100% begrenzt, das darfst du natürlich anpassen. Ausserdem gibt es für
Kunden mit einem aktuellen Quota von mehr als 1GB keinen Hinweis
darauf, dass sie sich an den Support wenden sollen, wenn sie mehr haben
wollen.
====
#!/bin/bash
export PATH=/sbin:/usr/sbin:/usr/bin:/bin
for n in $(su - cyrus -s /bin/bash -c quota | egrep -v Trash | \
tail +2 | sort -k2nr | expand | sed s/^[\ ]*//g | \
tr -s " " | tr " " _ ); do
QUOTA=$(echo "scale=0; $(echo $n | cut -f1 -d_)/1024" | bc -l)
TOTAL=$(echo $n | cut -f1 -d_)
PERCENTAGE=$(echo $n | cut -f2 -d_)
ACTUSAGE=$(echo "scale=0; $(echo $n | cut -f3 -d_)/1024" | bc -l)
USER=$(echo $n | cut -f4 -d_ | cut -f2 -d/)
if [ $PERCENTAGE -lt 90 ]; then
exit
fi
if [ $PERCENTAGE -lt 100 ]; then
REALNAME="$(grep "^$USER:" /etc/passwd | cut -f5 -d:)"
echo $USER $QUOTA $ACTUSAGE $PERCENTAGE $REALNAME
(cat << EOF
Dear REALNAME,
the space you are using on the mail server for storing your mails
is ACTUSAGE MB currently. This is PERCENTAGE% of your current limit
of QUOTA MB.
Please free some space in your mailbox, as on reaching the limit
the mail server stops receiving mails for your account.
EOF
if [ $TOTAL -lt 1000000 ]; then
cat << EOF
If you feel needing more space on the mail server, please contact
<Mailadresse des IT Helpdesk>.
EOF
fi
cat << EOF
Your Senior Chief Executive Hannebambel Int-EDV,
Stefan Schmidt
Idiot vom Dienst
EOF
)| m4 -DUSER=$USER -DPERCENTAGE=$PERCENTAGE -DACTUSAGE=$ACTUSAGE \
-DQUOTA=$QUOTA -DREALNAME="$REALNAME" | \
mail -r "<helpdesk at example.com>" \
-s "Your actual mailbox usage is near quota" \
$USER at example.com
fi
done
====
Viel Spass,
Stefan
--
Stefan Schmidt
Network Manager
Jacobs University Bremen gGmbH
Campus Ring 1 | 28759 Bremen | Germany
Commercial registry: Amtsgericht Bremen, HRB 18117
CEO: Prof. Dr. Joachim Treusch
Chair Board of Governors: Prof. Dr. Karin Lochte
Mehr Informationen über die Mailingliste Postfixbuch-users