一、需求
卫士那边有一个需求,就是要把一台内网服务器的数据同步到外网的一台服务器上,之前我用的是rsync+intify-tool+ssh实现的实时同步更新,前几天我还在东莞出差,开发的人给我打电话说这两台服务器的数据不同步了,我上去检查一遍,原来是用来同步数据的这个系统账号被北京的同事修改,ssh免密码登陆失败了,所以数据同步不了,后来想想这样在系统开着个单用户用来同步数据确实是存在安全风险,我有具体和开发的沟通了一下,这个项目的数据同步也不是那么的需要实时同步,所以现在我要改成单用rsync同步,具体步骤如下:
二、环境
内网:10.20.220.247
同步目录1:/data/appsdata/softmgr-v3/static-file/update
同步目录2:/data/appsdata/softmgr-v3/static-file/v1_0
外网:114.112.36.X
同步目录1:/data/apps/ksoftmgr/ksafe/client/update
同步目录2:/data/apps/ksoftmgr/ksafe/client/v1_0
三、安装配置
1.服务器端(114.112.36.69)
A、[root@localhost ~]# yum -y install rsync xinetd
B、[root@localhost ~]# vi /etc/xinetd.d/rsync
将 disable = no 改成yes
[root@localhost ~]# /etc/init.d/xinetd start
C、撰写rsync的配置文件
[root@localhost ~]# vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[update]
path = /data/apps/ksoftmgr/ksafe/client/update
comment = update file
ignore errors
read only = no
write only = no
hosts allow = 125.89.65.194
hosts deny = *
uid = root
auth users = wcm
secrets file = /etc/web.pass
[v1_0]
path = /data/apps/ksoftmgr/ksafe/client/v1_0
comment = v1_0 file
ignore errors
read only = no
write only = no
hosts allow = 125.89.65.194
hosts deny = *
uid = root
auth users = wcm
secrets file = /etc/web.pass
D、撰写密码文件
[root@localhost ~]# vi /etc/web.pass (格式 账号:密码)
wcm:8888888
[root@localhost ~]# chown root:root /etc/web.pass
[root@localhost ~]# chmod 600 /etc/web.pass
E、启动rsync
[root@localhost ~]# rsync --daemon
[root@localhost ~]# echo "rsync --daemon" >> /etc/rc.local
2、客户端(10.20.220.247)
A、[root@localhost ~]# yum -y install rsync
B、撰写密码文件
[root@localhost ~]# vi /etc/web.pass (主要:只写用来同步的账号的密码)
8888888
[root@localhost ~]# chown root:root /etc/web.pass
[root@localhost ~]# chmod 600 /etc/web.pass
C、撰写crontab,没一分钟同步一次
[root@localhost v1_0]# crontab -e
*/1 * * * * /usr/bin/rsync -avz --progress --delete /data/appsdata/softmgr-v3/static-file/update/ [email protected]::update --password-file=/etc/web.pass
*/1 * * * * /usr/bin/rsync -avz --progress --delete /data/appsdata/softmgr-v3/static-file/v1_0/ [email protected]::v1_0 --password-file=/etc/web.pass
四、测试
在内网的update和v1_0下面删除或者新建文件,看对应外网的机器上是否也是做了相应的操作,如果是,说明OK,我的肯定是撒,线上的不同步就悲剧了。