当前位置: 主页 > 服务器技术 > Mail服务器 > Postfix电子邮件系统完整安装教程

Postfix电子邮件系统完整安装教程

时间:2009-11-17来源:互联网 点击:
邮件系统的备份

在系统崩溃以后,没有提前备份将使你无限懊悔。一次没有成功的在线内核升级引起的系统崩溃(在我没来得及备份时发生),为恢复崩溃邮件系统,曾让我精疲力竭。所以做好备份是一个好主意。当然我们不能天天手动去执行这个备份任务,用脚本吧!下面是我的一个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


关于多邮件域和用户限额
Postfix支持多邮件域,当我们用postfixadmin创建多个邮件域的时候,别忘记在DNS服务器上做好主机记录解析和MX解析。多邮件域的情形是多个mx记录指向同一个主机ip地址。
默认情况下,postfix 数据库的mailbox表的字段"quota"值是"0",它表示用户的油箱大小是100M,假如我们要把用户的邮箱大小设置成500M,则只需连接数据库postfix更改mailbox表"quota"字段的值为"524288000"。

mysql> use postfix;
mysql> update mailbox set quota=‘524288000‘;
Query OK, 1 row affected (0.03 sec)
Rows matched: 191 Changed: 1  Warnings: 0

图 10

所有的工作都做完以后,重启linux。检查进程看与postfix相关的守护进程是否在运行,然后在用foxmail来收发邮件,再也webmail(extmail)方式收发。尽管postfix涉及很多方面的内容,但在大部分情况下,通过日志文件/var/log/maillog可以得出一些非常有用的信息,从排除故障这个角度讲,postfix的日志文件将会为排除故障提供很好的帮助。


站长资讯网
.
分页: [1] [2] [3] [4] [5] [6] [7] [8] [9]
TAG: POSTFIX 电子邮件 教程 系统
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言