- 论坛徽章:
- 0
|
OpenBSD4.3装的Sendmail和dovecot,搞完了没装Web界面,自己写了个脚本处理邮件空间问题,大家帮我看看还有什么需要完善的地方。
用户的邮件全部存放在/home/mail/“用户名”里,所以只要计算这个文件夹占用的空间就行了。
所有后面的注释都是后来加的,到目前为止我还不能通过putty在OpenBSD里打汉字。 :)
$ cat alarttoadmin
#!/bin/ksh
#
#给管理员告警或者发统计数据
du -s /home/mail/* > temp0
A=`cat temp0 | awk '{ if( $1 >= 6003200 ) { a="yes" } else { a="no" }} END { print a }'`
#6003200估计是3G的空间,我随便写的。判断是否有人的空间超过了限制。
if [ A == "yes" ];then
cat temp0 | sed 's/\/home\/mail\///g' \
|awk -F '\t' '{if ( $1 >= 6003200 ) { print $1 "\t" $2 } }' \
| mail -s "Alart" alart@xxx.com
#将用户占用的空间和用户名以“Alart”为标题发送给邮件管理员。
else
du -hs /home/mail/test* | sed 's/\/home\/mail\///g' \
|awk -F '\t' '{if ( $1 >= 6003200 ) { print $1 "\t" $2 } }' \
| mail -s "Statement" statement@xxx.com
#一切正常就发个统计。
fi
rm -f temp0
$ cat alarttousers
#!/bin/ksh
#
#发邮件给超过限制的用户
du -s /home/mail/* > temp1
A=`cat temp | awk '{ if( $1 >= 6003200 ) { a="yes" } else { a="no" }} END { print a }'`
if [ A == "yes" ];then
cat temp | sed 's/\/home\/mail\///g' \
|awk -F '\t' '{if ( $1 >= 6003200 ) { $2 } }' > alartusers.tmp
#获得用户名
for name in `cat alartuserstmp`
do
echo 'Your mailbox is full,please clean up or contact Administers!' | $name@ahzlcpa.com
#用中文的话,用OutLook接受邮件会出现乱码,我没法解决。
done
else
exit
fi
rm -f temp1
rm -f alartusers.tmp
不知道会不会被转到Shell版,哈哈。 |
|