ich bräuchte mal euere Unterstützung.
Da ich im Shellscripte schreiben noch nicht so gut bin würde ich gerne das folgende Script von euch mal quercheken lassen ob es funktionieren würde.
Ansatz wäre über den repquota die aktuelle Quota Nutzung von den E-Mail Usern auszulesen und bei 95% Mailboxfüllung ein Warnhinweis an den User rausgehen soll dass seine Mailbox voll wird.
Aktuell habe ich schon folgendes geschrieben. Bitte um Feedback.
Code: Alles auswählen
#! /bin/sh
#© by crusher
#Pfad fuer das E-Mail-Verzeichniss von confixx
MAILROOT=/var/mail/
#Pfad für Device wo die Mails liegen
MAILDEV=/dev/sda2
#Bei wievile Prozent Platzbelegung soll eine Warnung rausgehen
WARNLIMIT=95
cd $MAILROOT > /dev/null
for DIR in *.*;do
cd $MAILROOT/$DIR
for MAILBOX in * ;do
if [ -d $MAILBOX ]
then
#Überlegung ist erstmal ein Logfile individuell für den Mail user zu schreiben.
#generierung eines Quota Files für den Mail User. Den /Maildir/ je nach E-Mail Programm ändern
repquota $MAILDEV |grep $MAILBOX > $MAILROOT/$DIR/$MAILBOX/Maildir/quota.log
# so hier wuerde ja die Quota dann drinnen stehen
QUOTAFILE= $MAILROOT/$DIR/$MAILBOX/Maildir/quota.log
# Würde das Hardquota auslesen (wobei das das Softquota aus dem repquota wäre (geht aber nur bis 1 gigabyte groesse)
HARDQUOTA=$((`head -1 $QUOTAFILE | cut -c 22-28`))
#Mein Ansatz wäre folgender. Im Logfile steht auch der aktuell verbrauchte Platz und diesen auch auslesen.
MBOXSPACE=$((`head -1 $QUOTAFILE | cut -c 13-20`))
# Softquota Berechnung würde ich so berechnen wenn die Mailbox zu 95% voll ist
SOFTQUOTA=$(($WARNLIMIT * $HARDQUOTA / 100))
# So würde ich die Prozentuale Füllung berechnen
MBOXPERCENT=$(echo "scale=2; $MBOXSPACE*100/$HARDQUOTA" | bc)
# Kurzer Check
if [ $HARDQUOTA -gt 0 -a $MBOXSPACE -gt $SOFTQUOTA ]; then
# So noch kurze Umrechnung in MB und zwei Kommastellen
HARDQUOTA=$(echo "scale=2; $HARDQUOTA/1024" | bc)
if [ "$(echo $HARDQUOTA | cut -c1)" = "." ] ; then HARDQUOTA="0"$HARDQUOTA
fi
MBOXSPACE=$(echo "scale=2; $MBOXSPACE/1024" | bc)
if [ "$(echo $MBOXSPACE | cut -c1)" = "." ] ; then MBOXSPACE="0"$MBOXSPACE
fi
mail -s "E-Mail Speicherplatz wird eng!" $MAILBOX@$DIR -a "Content-Type: text/plain; charset=ISO-8859-1" << EOF
Sehr geehrter Nutzer,
Ihre E-Mail mit dem Benutzername '$MAILBOX@$DIR' verwendet aktuell $MBOXSPACE MB ($MBOXPERCENT%) von Ihren Maximum Speicherplatz von $HARDQUOTA MB.
Wir weisen Sie darauf hin, unbedingt Mails zu löschen.
Sie werden diesen Hinweis nicht mehr erhalten wenn die Mailbox geelert wurde oder voll ist.
Dies ist eine automatische E-Mail. Bitte weden Sie sich an den Administrator Ihres Systems.
EOF
fi
fi
done;
done;