Postfix 电子邮件系统精要(1)(11)
在系统崩溃以后,没有提前备份将使你无限懊悔。一次没有成功的在线内核升级引起的系统崩溃在我没来得及备份时发生),为恢复崩溃邮件系统,曾让我精疲力竭。所以做好备份是一个好主意。当然我们不能天天手动去执行这个备份任务,用脚本吧!下面是我的一个postfix的备份脚本,供大家参考:
[root@mailserv2 virusalert]# more /usr/local/bin/data_backup.sh #!/bin/bash BackupPath=/var/data_bk Mysql_bk_dir=$BackupPath/mysqlbk Mail_bk_dir=$BackupPath/mailbk LogFile=$BackupPath/backuplog MailBoxDir=/var/mailbox #################################################################### # define mysql variables # #################################################################### NewFile="$Mysql_bk_dir"/postfix$(date +%Y%m%d).tgz DumpFile="$Mysql_bk_dir"/postfix$(date +%Y%m%d).sql OldFile="$Mysql_bk_dir"/postfix$(date +%Y%m%d --date='5 days ago').tgz DbUser=root DbPasswd=husb^R DbName=postfix #################################################################### # mysql backup proccess # #################################################################### echo "-------------------------------------------" >> $LogFile echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile echo "--------------------------" >> $LogFile #Delete Old File if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi if [ -f $NewFile ] then echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile else cd $Mysql_bk_dir /usr/local/mysql/bin/mysqldump -u $DbUser -p$DbPasswd --opt $DbName > $DumpFile tar czf $NewFile postfix$(date +%Y%m%d).sql >> $LogFile 2>&1 echo "[$NewFile]Backup Success!" >> $LogFile rm -rf $DumpFile fi ###################################################################### # backup mail's user directories and files # ###################################################################### MailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d).tgz OldMailFileBk=$Mail_bk_dir/mail$(date +%Y%m%d --date='14 days ago').tgz if [ -f $OldMailFileBk ] then rm -rf $OldMailFileBk fi if [ -f $MailFileBk ] then echo "[$MailFileBk]The Backup File is exists,Can't Backup!" >> $LogFile else cd /mail tar czf $MailFileBk mailbox >> $LogFile 2>&1 fi echo "-------------------------------------------" >> $LogFile |
这个脚本对postfix数据库和用户的邮件做了备份。因为磁盘空间始终是有限的,因此是一边备份一边删除就的备份。如果条件允许,建议进行异地备份。手动执行一下这个脚本,看它是否按我们的意愿工作了,如果一些如愿,则把它放入crontab里让它每晚自动进行。
[root@mailserv2 ~]# crontab -l 0 0 1 * * root wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf;kill -HUP `cat /var/run/spamd.pid` 00 01 * * * /usr/local/bin/data_backup.sh 00 00 * * * /usr/local/clamav/bin/freshclam |
评论暂时关闭