news 2026/5/21 10:22:05

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)

Rsyncwindows版下载地址:

安装过程中创建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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 10:21:04

Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析

Hitboxer SOCD Cleaner:键盘输入仲裁系统的底层实现与技术架构分析 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏领域,键盘输入精度直接影响玩家操作表现。传统键盘在处理同…

作者头像 李华
网站建设 2026/5/21 10:17:08

终极指南:用Mousecape打造个性化macOS鼠标指针主题

终极指南:用Mousecape打造个性化macOS鼠标指针主题 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 想让你的Mac电脑告别单调乏味的默认鼠标指针吗?Mousecape作为一款专业的macOS光标…

作者头像 李华
网站建设 2026/5/21 10:16:18

5个高效技巧:轻松优化戴尔G15散热控制体验

5个高效技巧:轻松优化戴尔G15散热控制体验 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否正在为戴尔G15笔记本的过热问题而烦恼&#xff1f…

作者头像 李华
网站建设 2026/5/21 10:16:09

ANSYS2022.R1安装教程

ANSYS2022.R1安装教程 软件下载 软件名称:ANSYS2022R1 软件语言:英文 软件大小:13.98G 系统要求:Windows10或更高, 64位操作系统(不支持家庭中文版和计算机名为中文的系统) 硬件要求:CPU@3.0+GHz ,RAM@16G或更高 下载通道①迅雷云盘丨下载链接:

作者头像 李华