利用heartbeat,mysql replication,rsync,sersync2实现邮件的高可用。本篇只说一下,sersync2实现邮件和附件的准实时同步。
1,下载安装sersync2
# wget -c https://github.com/wsgzao/sersync/blob/master/sersync2.5.4_64bit_binary_stable_final.tar.gz # tar zxvf sersync2.5_64bit_binary_stable_final.tar.gz # mv GNU-Linux-x86 /usr/local/sersync2
2,配置sersync2
<?xml version="1.0" encoding="ISO-8859-1"?> <head version="2.5"> <host hostip="localhost" port="8008"></host> <debug start="false"/> <fileSystem xfs="false"/> <filter start="false"> <exclude expression="(.*)\.svn"></exclude> <exclude expression="(.*)\.gz"></exclude> <exclude expression="^info/*"></exclude> <exclude expression="^static/*"></exclude> </filter> <inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="true"/> <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="false"/> <modify start="false"/> </inotify> <sersync> <localpath watch="/mail/data"> <remote ip="10.0.10.8" name="iredmail"/> </localpath> <rsync> <commonParams params="-artuz"/> <auth start="true" users="iredmail_attachment" passwordfile="/etc/rsyncd/passwd"/> <userDefinedPort start="false" port="874"/> <timeout start="false" time="100"/> <ssh start="false"/> </rsync> <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/> <crontab start="false" schedule="600"> <crontabfilter start="false"> <exclude expression="*.php"></exclude> <exclude expression="info/*"></exclude> </crontabfilter> </crontab> <plugin start="false" name="command"/> </sersync> </head>
在这里要注意:
/mail/data 是邮件路径
/tmp/rsync_fail_log.sh 这是个自动生成
3,创建自启动脚本
root@mail1:/usr/local/sersync2# cat start.sh #!/bin/sh /usr/local/sersync2/sersync2 -r -o /usr/local/sersync2/c.xml > /usr/local/sersync2/sersync2.log root@mail1:/usr/local/sersync2# cat stop.sh #!/bin/sh ps aux |grep sersync2 | kill -9 `awk 'NR>1{print line}{line=$2}'` root@mail1:/usr/local/sersync2# cat /usr/lib/systemd/system/sersync2.service [Unit] Description=sersync After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=simple TimeoutSec=300 ExecStart=/usr/local/sersync2/start.sh ExecStop=/usr/local/sersync2/stop.sh Restart=on-failure PrivateTmp=true [Install] WantedBy=multi-user.target #systemctl start sersync2 //启动
4,测试,在/mail/data目录创建文件和目录,看会不会同步
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/server/2510.html