背景:

  公司最近由于服务器费用问题,需要将邮件服务器从亚马逊(新加坡)云服务器A迁移到阿里云(香港)云服务器B。

  由于邮箱使用的是域名访问,但是没有进行备案,所以只能迁移到港澳台地区,才能正常使用。

概述:

  在服务器A上面发现有当时的zimbra的安装包,于是直接使用这个包在服务器B上安装使用,安装倒是没有什么问题,迁移是个大问题,由于zimbra套件比较臃肿,要想搞透太难,而且时间也不允许,在找了几个方案后,最近决定使用rsync直接同步来迁移,简单。哈哈。

准备:

  在原服务器A上发现了原来的安装包zcs-8.6.0_GA_1153.RHEL6_64.20141215151155,于是直接拷贝到服务器B上使用安装。

  假如安装过程中出现问题,或者安装失败想重新安装,只需要讲安装的zimbra程序卸载就可以了,由于zimbra所有的程序都是zimbra开头的,所以我们只需要执行下面这个脚本就可以卸载了

 #uninstall

 for i in $(rpm -qa|grep zimbra)
do
echo starting uninstall $i
rpm -e $i
done

1.关闭selinux编辑/etc/selinux/config,阿里云上面默认是关闭的

SELINUX=disabled

2.开放防火墙端口,你也可以直接在阿里云的安全组里面开放以下端口,这些端口都是zimbra要用到的。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7071 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT

3.配置主机名,编辑/etc/sysconfig/network

HOSTNAME=mail.my.com

备注:阿里云上面直接修改上面后,需要重启主机名才会生效,亲测。不想重启的话,可以直接使用修改完配置文件后,直接使用hostname修改主机名。

4.配置hosts,编辑/etc/hosts

10.10.10.25  mail.my.com  mail

5.关闭系统自带的mta服务(sendmail,postfix),避免25端口被占用

chkconfig postfix off
service postfix stop
chkconfig sendmail off
service sendmail stop

6.重启服务器,使所有配置生效。

reboot

安装

1.安装dnsmasq,一个轻量级的dns解析服务,也可以安装重磅炸弹bind

yum install dnsmasq bind-utils

2.配置dnsmasq

添加下面内容到/etc/dnsmasq.conf

no-resolv

server=10.10.10.25

domain=my.com.cn

mx-host=my.com.cn,mail.my.com.cn,5

添加下面内容到/etc/resolv.conf阿里云默认的几个地址上面

nameserver 127.0.0.1

3.测试dns

dig mail.my.com.cn MX

如果记录显示正确,则配置成功。

4.安装zimbra

解压缩zimba的安装包,进入到解压目录里面,直接运行里面的install.sh脚本即可。

Do you agree with the terms of the software license agreement? [N] y

然后程序会自动检测需要的依赖包,没有安装的话,会有提示,并结束程序运行。

在打开一个终端窗口,安装所需软件即可。

Change domain name? [Yes] yes

Create domain:my.com

#这个步骤可以在网上找现成的,下面是一个百度文库的连接

安装过程

安装完成后,可以通过本机访问https://mail.my.com:7071验证是否成功

迁移:

安装完成后,就是迁移了,迁移的文档在网上找了很多,zimbra自带了一个迁移和共存的工具,不过在配置ldap的时候不知道怎么配置,官网论坛上或者官方wiki上面直接搜ldap,查找了文档,但是按照文档只是举了个例子,按照它配置不成功,其他的zmtozmig的啥的工具,根本没找到。

有一个可以单独迁移个用户的所有数据的工具,imapsync这个工具,不过一条一条复制太麻烦了,我也没有尝试

最后决定用rsync来直接同步/opt/zimbra目录,因为zimbra的所有程序都安装在这个目录下面。

配置rsync服务。

同步:

#同步过程中zimbra的数据库文件
/opt/zimbra/data/ldap/mdb/db/data.mdb
#这个文件使用了像vm虚拟机的动态硬盘大小似的原理,直接复制的话,需要#直接复制80G的大小,我尝试了。
rsync -azHpr --delete zimbra@10.10.10.25::zcshome /opt/zimbra/ --password-file=/etc/rsyncd/rsyncd.secrets
#同步时可以通过rsync的exclude参数跳过上面的data.mdb文件
#对于data.mdb的同步,我们可以使用一个官方自带的工具mdb_copy
mkdir /opt/zimbra/data/ldap/mdb/db
mdb_copy /opt/zimbra/data/ldap/db /opt/zimbra/backup/ldap/mdb/db
#mdb_copy需要切换到zimbra用户才可以使用
#然后通过rsync同步这个备份的文件就可以了

mdb_copy官方连接

后续:

同步完成后,如果发现权限不对,可以使用zimbra自带的工具修复

/opt/zimbra/libexec/zmfixperms

rsync同步后,发现属组不对,原来同步的时候,使用了use changeroot=yes选项,没有进行gid和gname的映射,取消这个选项或者设置为no即可

原因:http://blog.sina.com.cn/s/blog_4c77206d0102vvmg.html

启动:

su - zimbra

zimbra start

可以正常运行

参考资料:

http://aba.qzu.cn/archives/523.html

https://www.chenxie.net/archives/1476.html

感谢他们的分享

zimbra邮件服务器的搭建和迁移的更多相关文章

  1. Linux中postfix邮件服务器的搭建

    postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在 ...

  2. Exchange 2010邮件服务器的搭建和部署

    Exchange主要是针对内部网或者企业网用户进行搭建的邮件服务器软件,利用它能够很快地搭建安全性较高的内部网邮件系统. 本次搭建在个人环境中实践,纯属爱好折腾,分四步骤,1.搭建windows 20 ...

  3. Linux系统下邮件服务器的搭建(Postfix+Dovecot)

    对于网站来说,发送各种例如注册通知的邮件是很基本的一个需求,之前我一直用的是腾讯的企业邮箱,感觉挺方便的,直接可以绑定QQ邮箱接收邮件,网站配置一下SMTP也就可以发出邮件. 但是在前几天由于有重要信 ...

  4. EwoMail开源邮件服务器软件搭建

    EwoMail开源邮件服务器软件简介 EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署.简单高效.多语言.安全稳定的邮件解决方案,帮助你提升运维效率,降低 ...

  5. Centos系统下邮件服务器的搭建

    原文地址:http://lomu.me/post/linux-email-server

  6. 烂泥:Postfix邮件服务器搭建之准备工作

    说实话,Postfix邮件服务器的搭建是一件很麻烦的事情,需要各种软件之间的配置和调试.在写这篇文章之前,我也是搭建测试了不下于10次才算把整个流程给走通,今天刚好有时间把整个搭建过程记录下来. 在正 ...

  7. 烂泥:Postfix邮件服务器搭建之软件安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...

  8. Apache James搭建内网邮件服务器

    Apache James搭建内网邮件服务器 极客521 | 极客521 2014-08-21 148 阅读 java 大概之前两个礼拜的日子,讨论会介绍了关于了.net内网邮件服务器的搭建.所以自己也 ...

  9. James搭建邮件服务器

    来源:http://chenfengcn.iteye.com/blog/356874   1 关于James与Javamail Apache James(Java Apache Mail Enterp ...

随机推荐

  1. unity鼠标拖动物体旋转

    using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...

  2. jQuery 的动画效果图片----隐藏打开方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 【转】C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ...

  4. Unity3d编辑器扩展学习笔记

    编辑器扩展 1.添加菜单栏:把特性应用于静态方法 参数1:菜单名的空格后面是定义快捷键(单符号得用"_"开头,组合键%=Ctrl,#=Shift,&=Alt) 参数2:通过 ...

  5. Vue父子组件生命周期执行顺序及钩子函数的个人理解

    先附一张官网上的vue实例的生命周期图,每个Vue实例在被创建的时候都需要经过一系列的初始化过程,例如需要设置数据监听,编译模板,将实例挂载到DOM并在数据变化时更新DOM等.同时在这个过程中也会运行 ...

  6. 利用SqlDataAdapter进行分页

    利用SqlDataAdapter进行记录分页 说到分页,很多地方都会用到,不管是windows程序还是web程序,为什么要进行分页?很简单,如果BlueIdea BBS帖子列表不分页的话,几十万条记录 ...

  7. pm2在node中的应用

    pm2 是一个带有负载均衡功能的Node应用的进程管理器,当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, pm2是完美的. 主要特性: 内建负载均衡(使用Nod ...

  8. 关于eclipse的编码注释等Code Template设置

    啥也不说直接放东西: 首先进入eclipse的preferences里的java 点击Insert variable可以自己设置需要的 1. 设置Files:点击edit, /** * <p&g ...

  9. Spring相关概念的理解理解

    spring 框架的优点是一个轻量级比较简单易学的框架,实际使用中的有点优点有哪些呢!1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3 ...

  10. Java Object类的equals()方法

    所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj)     {         retu ...