当前位置: 代码迷 >> 综合 >> 数据摆渡-Centos7-rsync-双向文件同步
  详细解决方案

数据摆渡-Centos7-rsync-双向文件同步

热度:51   发布时间:2023-12-04 00:10:18.0

数据摆渡系列文章目录

第一篇: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
  相关解决方案