2011年(10)
分类: LINUX
2011-09-01 09:59:33
邮件服务器:192.168.0.210
同步备份服务器:192.168.0.211
服务器最好都装上同样的EOMS系统,以防主服务器出现硬件故障时,能即使切换到备份服务器中(修改IP),在最短的时间恢复,当然其它linux也行。
主服务器RSYNC配置
如没有安装可以执行(#yum -y install rsyncd)
配置文件/etc/rsyncd.conf
uid = root //运行RSYNC守护进程的用户
gid = root //运行RSYNC守护进程的组
ignore errors //可以忽略一些无关的IO错误
read only = yes // 只读
list = no //不允许列文件
//下面这些绿色文件是安装完RSYNC服务后自动生成的文件
pid file = /var/log/rsyncd.pid //pid文件的存放位置
lock file = /var/log/rsync/rsync.lock //锁文件的存放位置
log file = /var/log/rsync/rsyncd.log //日志记录文件的存放位置
port = 873 //默认端口
use chroot =
no
//不使用chroot
max connections =
4 // 最大连接数为4
strict modes
=yes
//是否检查口令文件的权限
address = 192.168.0.210 //本地地址
hosts allow = 192.168.0.0/255.255.0.0 //允许访问地址段
hosts deny = * //禁止所有
timeout = 300 //连接超时时间
[mailbak-update-home] //模块名称
auth users = root //认证用户
path = /home/domains //备份路径
#comment = userinfo mail //备份提示
secrets file = /etc/rsyncd.secrets //备份认证用户密码文件路径
[mailbak-update-mysql]
auth users = root
path = /var/lib/mysql/
#comment = mysql server
secrets file = /etc/rsyncd.secrets
[mailbak-update-web]
auth users = root
secrets file = /etc/rsyncd.secrets
#comment = web extmail extman discuz dspam_webui phpmyadmin web server
分别对邮件存放目录/home/domains 、邮件数据库目录path = /var/lib/mysql/ 、邮件的webmail网站目录path = /var/www/extsuite 进行备份
文件 权限 600
root:miartech
//不要有空格
chmod 600 /etc/rsyncd.secrets
将/etc/xinetd.d/rsync 把原来disable = no 改= yes ,随系统启动 chkconfig rsync on
最后把服务器上的873端口规则
备份服务器rsync配置
建立/etc/rsyncd.secret 密码文件(注:这里文件内容只要密码,不要用户),权限600
miartech
如果文件内容跟服务器一致的话,出现
@ERROR: auth failed
on module mailbak-update-web
rsync error: error starting client-server protocol (code 5) at main.c(1522)
[receiver=3.0.3]
原因:
服务器端该模块(mailbak-update-web)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。
最后防火墙关掉或者增加一条允许其他服务器访问的873端口规则
客户端同步数据
/usr/bin/rsync -vzrtopg --exclude "miartech.com.cn/" --progress --delete --password-file=/etc/rsyncd.secrets root@192.168.0.210:: mailbak-update-home /home/domains
参数说明
-vzrtopg里的
v是verbose,
z是压缩,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数
----progress
是指显示出详细的进度情况
--delete
是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
mailbak-update-home
用户名
模块名
--exclude="miartech.com.cn/"
不包含某些文件
--password-file
指定CLIENT端密码文件存放路径
/home/domains/
指定CLIENT端存放镜象目的路径
因数据每时都是在变动的,而除了第一次同步数据比较大外,后面都比较小,所以第一次最好自己手动执行命令,后面的可以通过计划任务的方式定时执行。
OK 完成!