分享

EMOS双机同步资料

 仴嗈鼋嗌鄦嶜 2017-04-29
假设我们邮件服务器主机名为mail (192.168.0.1),备份主机名为mailbak(192.168.0.2),则需要做的工作如下:
1. 确保在两台服务器上分别装上rsync,如果已经装好就跳过。
    下载好后放到服务器上解压
    #tar -zxvf rsync-3.0.6.tar.gz
    安装
    #cd rsync-3.0.6
    #./configure --prefix=/usr/
   #make
   #make install

   
    查一下安装目录
     #find / -name rsync
     /usr/bin/rsync
     /root/rsync-3.0.6/rsync
  
2. 在备机192.168.0.2上配置rsync服务(只需新增两个文件 rsyncd.conf 和 rsyncd.secrets 即可)
#vim /etc/rsyncd.conf 注意修改2处hosts allow 的IP地址是主机的IP
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873 
[mailbak-update-mysql-extmail]
path = /var/lib/mysql/
comment = This is a test
ignore errors
read only = no
list = no
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.1
[mailbak-update-home]
path = /home/
comment = This is a test
ignore errors
read only = no
list = no
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.1
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
上述文件的作用是将备份服务器本地的/home/domains目录及/var/lib/mysql/extmail/目录作为同步操作的对象供邮件主服务器实时写入更新的资料
#vim rsyncd.secrets
root:123456                #认证信息,随意即可,但两端要保持一致 
3. 在邮件备份服务器上将同步服务开启,方法是在/etc/rc.d/rc.local文件中加入一行:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/mailgraph_ext/mailgraph-init start
/usr/bin/freshclam --daemon
/usr/local/slockd/slockd-init start
/var/www/extsuite/extman/daemon/cmdserver -v -d
/usr/bin/rsync --daemon

 

保存后
rsync --daemon --config=/etc/rsyncd.conf
这样,备份服务器上的工作完成,然后我们

 
 
登陆到邮件主服务器192.168.0.1上来操作:
1. 创建一个同步数据的脚本/root/rsync-to-mailbak.sh内容如下(两行):
rsync -rlptgoDvHS --progress --delete --force --password-file=/etc/rsyncd.secrets /home/ root@192.168.0.2::mailbak-update-home
rsync -rlptgoDvHS --progress --delete --force --password-file=/etc/rsyncd.secrets /var/lib/mysql/ root@192.168.0.2::mailbak-update-mysql-extmail 
2. 将这个新建的脚本权限变为可执行744或755:
chmod 744 /root/rsync-to-mailbak.sh 
3. 在主服务器上创建密码文件/etc/rsyncd.secrets,使其内容和备份服务器上的密码一致。
#vi rsyncd.secrets
root:123456                #认证信息,保持一致
 
现在可以试运行一下这个脚本看看效果了,如果是第一次,正常情况你会看到很多数据在拷贝。第二次则很少了,因为所做的是差异对比同步,相同的文件不会再次拷贝。 
4. 将这个脚本放到计划任务中,设定每5分钟执行一次:
crontab -e
添加一行命令如下:
0,5 * * * * /root/rsync-to-mailbak.sh
保存,退出即可立即生效。 
现在如果你的邮件主服务器192.168.0.1突然发生硬件故障当机,所需要做的只是立即将备份主机的IP地址192.168.0.2改为主服务器192.168.0.1后运行一下/sbin/service network restart或重新启动一下即可,用户丢失的信件仅仅是在最近5分钟内的内容(<=5分钟)。

故障排除

rsync: failed to connect to 192.168.1.223: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
原因:对方没开机、没开rsync、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp 的873端口打开,或者rsync没装。
vi /etc/sysconfig/iptables 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p udp --dport 873 -j ACCEPT
service iptables restart #重启防火墙

2、备份机服务未启动
rsync: failed to connect to 10.10.10.170: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
启动服务输入:rsync --daemon --config=/etc/rsyncd.conf

 

 


 

 

 

 

 

 

 

 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多