数据摆渡系列文章目录
第一篇:CentOs7中基于rsync的双向文件同步
第二篇:Windows中基于GoodSync双向文件同步
文章目录
- 数据摆渡系列文章目录
- 一、前言
- 二、使用`rsync` 实现两台服务器文件双向同步
-
- 1.服务器说明
- 2. `rsync` 安装(两台服务器)
- 3.建立 `rsync` 密码认证文件(两台服务器)
- 4.`rsync` 配置
-
- 外网 network
- 内网 `intranet`
- 5.`rsync`密码文件赋600权限(两台服务器)
- 6.`rsync` 启动(两台服务器)
- 7.验证同步
-
- 外网 network
- 内网 `intranet`
- 8.停止`rsync`
- 9.编写启动脚本,2秒同步文件
-
- 外网 network
- 内网 `intranet`
- 10.inotify-tools 方式实现文件同步
-
- 安装(两台服务器)
- 启动脚本
一、前言
本篇文章关于,两台服务器需要对不同的文件进行自动同步的解决方案。
二、使用rsync
实现两台服务器文件双向同步
关闸、网关下的,内外网数据摆渡解决方案。
1.服务器说明
主机 | 说明 | 同步文件夹 |
---|---|---|
192.168.0.35 | 外网,需要同步内网的/adapter/data/recv /response/ |
/adapter/data/send/request/ |
192.168.0.37 | 内网,需要同步外网的/adapter/data/send/request/ | /adapter/data/recv /response/ |
2. rsync
安装(两台服务器)
yum install -y rsync
3.建立 rsync
密码认证文件(两台服务器)
两台主机的
rsync
用户名和密码建议配置一样,方便配置且不容易搞错
vi /etc/rsyncd.passwd #内容格式 用户名:密码 rsync:123456
vi /root/rsyncd.passwd #内容格式 密码 123456
4.rsync
配置
外网 network
uid = root
gid = root
use chroot = 0
#post rsync使用的端口号
port = 873
#允许那些IP访问
# hosts allow = 172.16.25.127
hosts allow = *
max connections = 0
timeout = 300
pid file = /var/run/rsyncd.pid
ock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b
transfer logging = yes
syslog facility = local3
#方括号中为模块名称
[network-adapter]
#指定当前模块在rsync服务器上的同步路径
#当前为外网模块,需要同步内网的响应数据
path = /adapter/data/recv/response/
#注释,可以同模块名一样
comment = network-adapter
ignore errors
#是否允许客户端上传文件
read only = no
list = no
#指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块
auth users = rsync
#保存密码和用户名文件,需要自己生成
secrets file = /etc/rsyncd.passwd
内网 intranet
uid = root
gid = root
use chroot = 0
#post rsync使用的端口号
port = 873
#允许访问的IP
# hosts allow = 172.16.25.127
hosts allow = *
max connections = 0
timeout = 300
pid file = /var/run/rsyncd.pid
ock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b
transfer logging = yes
syslog facility = local3
#方括号中为模块声明,对应命名
#此处为内网模块,需要同步外网的请求数据
[intranet-adapter]
#指定当前模块在rsync服务器上的同步路径
path = /adapter/data/send/request/
#注释,可以同模块名一样
comment = intranet-adapter
ignore errors
#是否允许客户端上传文件
read only = no
list = no
#指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块
auth users = rsync
#保存密码和用户名文件,需要自己生成
secrets file = /etc/rsyncd.passwd
5.rsync
密码文件赋600权限(两台服务器)
chmod 600 /etc/rsyncd.passwdchmod 600 /root/rsyncd.passwd
6.rsync
启动(两台服务器)
#以守护进程方式启动rsync服务
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
7.验证同步
外网 network
rsync -vzrtopg --delete --progress /adapter/data/send/request/ rsync@192.168.0.37::intranet-adapter --password-file=/root/rsyncd.passwd
内网 intranet
rsync -vzrtopg --delete --progress /adapter/data/recv/response/ rsync@192.168.0.35::network-adapter --password-file=/root/rsyncd.passwd
8.停止rsync
ps -ef | grep rsync
kill -9 xxx
rm /var/run/rsync.pid -f
9.编写启动脚本,2秒同步文件
外网 network
while true
do rsync -vzrtopg --delete --progress /adapter/data/send/request/ rsync@192.168.0.37::intranet-adapter --password-file=/root/rsyncd.passwdsleep 2
done
内网 intranet
#!/usr/bin/bashwhile true
do rsync -vzrtopg --delete --progress /adapter/data/recv/response/ rsync@192.168.0.35::network-adapter --password-file=/root/rsyncd.passwdsleep 2
done
10.inotify-tools 方式实现文件同步
当监控到文件夹或者文件发生改变的时候利用
rsync
进行同步。
安装(两台服务器)
yum install -y inotify-tools
启动脚本
#!/bin/bashsrcdir=/adapter/approval/recv/response/while truedorsync -vzrtopg --delete --progress ${srcdir} rsync@192.168.0.252::network-adapter --password-file=/root/rsyncd.passwddone