windows、linux(麒麟系统)下使用Rsync+inotify进行服务器间的文件同步

目录

1、同步方式介绍

2、方式一:windows下Rsync实时同步部署

2.1服务器 A上安装Rsync服务

2.1.1、安装服务

 2.1.2、配置服务及密码

2.1.3、创建密码文件 rsyncd.secrets

2.2服务器 B上执行同步文件

2.2.1安装cwRsync_4.1.0_Installer_client

2.2.3依赖windows定时任务,设置定时自动同步

3、方式二:麒麟系统下Rsync+inotify实时监控推送文件

3.1服务器 A上配置inotify服务

3.2服务器 B上配置Rsync服务


1、同步方式介绍

Rsync 可以远程同步数据,将一台服务器上的文件,同步到另一台上,支持异步同步(即不会全部覆盖,先判断已存在的数据和新数据的差异,数据不同时才会进行同步工作,可以大大减少同步资源消耗)

支持从服务器拉取和推送两种方式,方法一支持linux和windows环境。方法二支持linux和麒麟系统(因目前未找到支持windows的inotify,所以目前不支持)

具体如下图:

 

2、方式一:windows下Rsync实时同步部署

2.1服务器 A上安装Rsync服务

2.1.1、安装服务

下载安装包,cwRsyncServer_4.1.0_Installer.rar,解压后双击exe进行安装,下一步安装(一般使用默认安装位置即可C:\Program Files (x86)\ICW)

安装过程中创建windows系统Rsync用户和密码使用文件记录下

 

 

 

 2.1.2、配置服务及密码

 1)进入安装目录C:\Program Files (x86)\ICW修改conf文件

 

 

 

strict modes = false:不验证用户密码,

hosts allow=****  :允许访问的ip地址

port=28873 :client端访问端口

pid = 0,uid = 0:指定匿名访问。

[data]  :指定模块名称,后续同步时通过模块名称进行同步对应的文件数据

Path 目录下的共享文件位置,E:\test需要写成/cygdrive/e/test

read only :只允许客户端读

auth users : 指访问userdata的用户名

secrets file :拉取文件用户名对应的密码文件。/cygdrive/e/test/rsyncd.secrets

2)授权

2.1.3、创建密码文件 rsyncd.secrets

创建 rsyncd.secrets文件,设置用户密码,存放路径与conf中一致(e/test/rsyncd.secrets)

userdata:123456

 给rsyncd.secrets文件授权给SvCWRSYNC用户(cwRsync安装时创建的系统用户)

 启动服务

 至此,服务端配置完成

2.2服务器 B上执行同步文件

2.2.1安装cwRsync_4.1.0_Installer_client

2.2.2手动执行文件同步

1、使用telnet 验证客户端与服务端是否通顺

2、建立密码文件rsync_db.ps存放在e/data/路径下,文件内容如下:

123456

3、打开Dos命令窗口,进到Rsync客户端安装目录的bin目录下,如:C:\Program Files\cwRsync\bin\。输入以下命令,开始进行同步:,同步化在设置的目录下可以看到新文件。

rsync -vzrtopg --port=28873 --progress --delete userdata@10.7.*.*::test /cygdrive/e/data/test --password-file=/cygdrive/e/data/rsync_db.ps

--port=28950 # 端口

-vzrtopg --progress # 显示同步过程详细信息

--delete # 从客户端目录中删除与服务端目录中不同的数据,保证两边数据完全一致

userdata  #连接服务器A的用户

10.7.*.*    #服务端A 的ip地址

/cygdrive/e/data/test  #客户端B 存放同步文件的目录

--password-file=/cygdrive/e/data/rsync_db.ps 设置client连接用户  userdata的密码文件位置

     

2.2.3依赖windows定时任务,设置定时自动同步

1、建立cwrsync_updata.bat,内容如下

set rsynclog #设置log存放路径

set RSYNC_home  #Rsync  客户端安装目录

2、在Window中添加任务计划

通过定时任务,设置每分钟执行一次 步骤1中的bat文件,达到实时同步的效果

 

 

 

 

 

 

 

3、方式二:麒麟系统下Rsync+inotify实时监控推送文件

3.1服务器 A上配置inotify服务

1、build inotify

#解压inotify到指定目录

/home/share/inotify-tools/inotify-tools-3.14

#执行预编译

./configure --prefix=/usr/local/inotify --build=arm-linux

#编译

make

make install

2、配置实时监控

#建立文件backup_inotifyall.sh

#!/bin/bash

host=10.7.*.*
src=/Data/
des=front
password=/etc/rsyncd/rsync.password
user=userdata
inotify=/usr/local/inotify            
${inotify}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
    | while read files
do
    rsync -avzP --delete --port=18873--timeout=100 --password-file=${password} $src $user@$host::$des
    echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

host#服务器B的ip地址

src#需要监控的目录

des#服务器B的同步模块名称

password#密码文件存放123456

userdata#器B允许同步的用户

port#服务器Brsync的ip地址

3、文件授权

chmod 764 backup_inotifyall.sh

4、启动sh文件
sh backup_inotify.sh & 

5、运行没有问题,需要使用长久化运行

nohup/home/share/bak/backup_inotifyall.sh &

3.2服务器 B上配置Rsync服务

系统自带Rsync 所以不需要重新build

1、建立rsync.password 文件,存放允许访问的用户和密码

userdata:123456

2、给文件授权

chmod 600 /etc/rsyncd/rsync.password 

3、配置rsyncd.conf

vi /etc/rsyncd.conf

#rsyncd.conf文件具体配置项如下,配置参数可参考windows

hosts allow = 10.7.*.*              
port = 28873              
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock 
log file = /var/log/rsyncd.log   
uid = 0
gid = 0
 
[front]                     
path = /Data/   
comment = Hello My Dear!
       
ignore errors
read only = no 
write only = no      
hosts deny = *
 
hosts allow =10.7.*.*
list = false
uid = 0
gid = 0 
auth users = userdata
             
secrets file = /etc/rsyncd/rsync.password

#启动resync

rsync --daemon

至此服务器A中/Data/ 文件夹下有文件的增删改   ,inotify监控到有变化,执行rsync的命令,将变化的文件同步到服务器B

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值