3.92邮件自清理脚本
针对于用户需求,写了这个脚本,每日删除N天之前的邮件,对于邮件系统的管理和维护更加方便。
ps:在使用此脚本前,请通知用户将用户重要邮件保存好,此脚本只是针对邮件时间进行清理,不能保留用户重要邮件。自测试通过,可正确删除邮件,为了安全,使用前请拷贝部分邮件测试再使用。
修改:手动建立好日志存放目录CLEAN_ROOT/logs/clean
#!/bin/bash
#MICMOUSE521
CLEAN_ROOT=/jdmail
#设定jmail所在路径
export CLEAN_ROOT
#声明jdmail环境变量
cleantime=180
#更改清理多久之前的邮件,默认为180,半年
domains=`ls $CLEAN_ROOT/accounts| grep -v .xml$|grep -v .xml.bk$|grep -v root$`
cd $CLEAN_ROOT/accounts && for domain in $domains
do
cd $domain && for user in `ls -1 |grep -v .xml$|grep -v .xml.bk$`
do
echo $user >> $CLEAN_ROOT/logs/clean/clean-`date +20%y-%m-%d`.log
find $user/Maildir -name "*" -type f -mtime +$cleantime -exec ls {} \; >> $CLEAN_ROOT/logs/clean/clean-`date +20%y-%m-%d`.log -exec rm {} \;
#将删除的邮件记录到日志中,方便查询。
done && cd ..
done
#!/bin/bash
echo "0 0 * * * /jdmail/clean.sh" >/var/spool/cron/root &
#每日自动执行清理脚本
/jdmail/startjd.sh
/jdmail/web/bin/startup.sh
/jdmail/sa/sa_server.sh
sleep 3
/jdmail/safestart.sh &
此帖于 2010-12-20 07:42 被 micmouse521 编辑。
原因: 建立日志存放目录。
|