#!/bin/bash
WARNLIMIT=$1
CRITICALLIMIT=$2
USERLIST=""
EXIT_STATUS=0
DETAIL=""
OUTPUT=OK
VMDIR=/var/vmail/domain.hu/
for db_user in `mysql -uUSERNAME -p'PASSWORD' DATABASE -e "select maildir from mailbox where active = 1 and maildir like 'domain%' order by maildir;" | tail -n +2`
do
user=`echo $db_user | sed 's/domain.hu\///' | tr -d "/"`
if [ -e $VMDIR/$user/maildirsize ]
then
QUOTA_LIMIT=`head -n 1 $VMDIR/$user/maildirsize | awk '{print $1}' | tr -d "S"`
SUM=0
for i in `tail -n +2 $VMDIR/$user/maildirsize | awk '{print $1}'`
do
SUM=`echo $SUM+$i | bc -l`
done
USED_PERCENT=`echo "$SUM/$QUOTA_LIMIT*100" | bc -l | cut -c -2 | tr -d "."`
if [ $USED_PERCENT -gt $WARNLIMIT ]
then
EXIT_STATUS=1
OUTPUT="WARNING user over limit:"
USERLIST="${USERLIST} $user - $USED_PERCENT%,"
fi
if [ $USED_PERCENT -gt $CRITICALLIMIT ]
then
EXIT_STATUS=2
OUTPUT="CRITICAL user over limit:"
USERLIST="${USERLIST}$user - $USED_PERCENT%,"
fi
DETAIL="${DETAIL} $user - $USED_PERCENT%,"
fi
done
echo "$OUTPUT $USERLIST | $DETAIL"
exit $EXIT_STATUS