- 论坛徽章:
- 0
|
本人使用qmail时间不长,发现vpopmail 的空间检测还不完善,一次给客户做项目,刚好有需求就写了这个脚本
结合Crontab使用效果还可以,有兴趣的网友可以试试,欢迎回馈顶贴!!
#!/bin/sh
# Name : checkquota.sh
# Deviser: Li Ming
# Date : Fri May 16 2008
# Purpose: Quota Warning Mail
# Use : chmod u+x checkquota.sh Unifies the crontab automatic movement once every day !
# History:
# Fri May 16 2008 First release by Li Ming
# Thu May 22 2008 Second release by Li Ming
# Fri May 23 2008 Third release by Li Ming
# Fri July 4 2008 Fourth release by Li Ming
# Mon July 7 2008 Fiveth release by Li Ming
# Mon July 14 2008 Sixth release by Li Ming
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
export PATH
#set -x
DIR1="/usr/src"
DIR2="/home/vpopmail/domains"
DATE=`date '+%F %H:%M'`
Lockfile=$DIR1/checkquota.lock
if [ -f "$Lockfile" ]
then
echo "Lock file is exist" && exit
else
touch $Lockfile
fi
if [ -f "$DIR1/maildirsize.txt" ]
then
rm -rf $DIR1/maildirsize.txt
else
echo $DATE
echo Wait a while ...
du -k $DIR2 | grep "Maildir$"| sort -nr | sed 's/Maildir$//g' | sed 's/\// /g' > $DIR1/maildirsize.txt
fi
LINE=$(wc -l $DIR1/maildirsize.txt | /bin/cut -d ' ' -f1)
for line in `seq 1 $LINE`
do
SUBDOMAIN=$(tail -n +$line $DIR1/maildirsize.txt | head -1 | awk '{ print $5 }')
ACCOUNT=`tail -n +$line $DIR1/maildirsize.txt | head -1 | awk '{ print $NF }'`
USED=$(tail -n +$line $DIR1/maildirsize.txt | head -1 | awk '{ print $1 }')
[email=ADDRESS=$ACCOUNT@$SUBDOMAIN]ADDRESS=$ACCOUNT@$SUBDOMAIN]ADDRESS=$ACCOUNT@$SUBDOMAIN]ADDRESS=$ACCOUNT@$SUBDOMAIN[/email]
QUOTA=`/home/vpopmail/bin/vuserinfo $ADDRESS|tail -4|head -1|awk '{ print $2 }'|sed 's/S,/ /g'|awk '{ print $1 }'|tr S " "`
case "$QUOTA" in
NOQUOTA)
continue
;;
*)
QUOTA_K=$(($QUOTA/1024))
USED_1=$(($USED*10))
PER=$(($USED_1/$QUOTA_K))
limit=7
if [ $PER -ge $limit ]
then
echo $ADDRESS
sendmail -t -oi -odb
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99388/showart_2002175.html |
|