查看: 87|回覆: 3

[教程] rsync在Windows平台的服务端搭建与客户端同步实践

[複製鏈接]

8

主題

1

回帖

476

積分

技术3级

金币
465
閲讀權限
30
精華
0
威望
0
贡献
0
在線時間
2 小時
註冊時間
2010-9-23
發表於 5 天前 | 顯示全部樓層 |閲讀模式
rsync在Windows平台的服务端搭建与客户端同步实践

引言

rsync是一款功能强大的文件同步工具,广泛用于服务器间的数据备份和同步。尽管rsync最初是为Unix/Linux系统设计的,但通过cwRsync等Windows版本的软件,我们可以在Windows平台上同样高效地利用rsync进行文件同步。
Windows rsync服务端搭建

1. 下载与安装

首先,你需要从cwRsync的官方网站(http://rsync.samba.org/download.html下载适用于Windows的cwRsyncServer安装包。推荐使用最新版本以确保最佳性能和安全性。
安装过程相对简单,按照安装向导逐步进行即可。注意在安装过程中创建一个专用的运行账户,并将其加入管理员组,以确保rsync服务能够正常运行。
2. 配置rsyncd.conf

安装完成后,找到rsyncd.conf配置文件(通常位于安装目录下的某个子目录中,如E:\Program Files\ICW\)。编辑此文件以配置rsync服务:
  1. # 示例配置
  2. use chroot = false
  3. uid = 0
  4. gid = 0
  5. strict modes = false
  6. log file = rsyncd.log
  7. port = 873 # 可以根据需要修改端口
  8. [test
  9.     path = /cygdrive/c/rsync_share # 指定共享目录
  10.     read only = false # 设置为false以允许上传
  11.     transfer logging = yes
  12.     auth users = rsyncuser
  13.     secrets file = etc/rsyncd.secrets
  14.     hosts allow = 192.168.1.0/24 # 允许访问的IP范围
複製代碼

注意:[test]是模块名,可以根据需要自定义。/cygdrive/c/rsync_share是Windows共享目录在Cygwin环境中的路径。
3. 创建密码文件

在配置文件中指定的secrets file路径下创建密码文件,并添加用户和密码(格式为用户名:密码)。例如:
  • rsyncuser:password123
确保密码文件的权限设置正确,一般应设置为仅所有者可读(600)。
4. 启动rsync服务

通过Windows服务管理器(services.msc)找到rsync服务,并将其设置为自动启动。然后,手动启动该服务以测试配置是否正确。
客户端同步操作

1. 安装rsync客户端

在客户端机器上,如果是Windows系统,同样需要下载并安装cwRsync的客户端版本。如果是Linux或Unix系统,则通常可以通过包管理器安装rsync。
2. 同步操作

使用rsync命令进行同步操作。以下是一些常用示例:
  • 从服务端下载文件到客户端:

    • rsync -avz rsyncuser@192.168.1.100::test /local/directory --password-file=/path/to/rsync.passwd
    注意:--password-file参数用于指定密码文件,以避免在命令行中明文输入密码。
  • 将客户端文件上传到服务端:

    • rsync -avz /local/directory rsyncuser@192.168.1.100::test --password-file=/path/to/rsync.passwd

3. 定时同步

对于需要定期同步的任务,可以在客户端设置计划任务(如Windows的任务计划程序或Linux的cron作业),以定时执行rsync命令。
注意事项

  • 确保防火墙和网络设置允许rsync服务的端口(默认为873)通过。
  • 如果在同步过程中遇到权限问题,请检查rsyncd.conf文件中的用户权限设置以及共享目录的权限。
  • 对于大文件或大量文件的同步,rsync的--contimeout和--timeout参数可能有助于避免超时错误。
结论

通过本文的介绍,你应该能够在Windows平台上成功搭建rsync服务端,并实现与服务端的数据同步。rsync作为一款高效的文件同步工具,在数据备份和迁移中发挥着重要作用。希望本文能够帮助你更好地利用rsync进行数据管理。

转自:https://cloud.baidu.com/article/3340321

回覆

使用道具 舉報

0

主題

720

回帖

4441

積分

琼殿精英

金币
3721
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 5 天前 | 顯示全部樓層
感谢楼主的详细分享!正好最近有需求要在Windows服务器上做文件同步,这篇教程来得太及时了。

有个问题想请教一下:在配置rsyncd.conf的时候,那个模块名[test]需要加引号吗?我看有些教程写成[test]有些写成"test",这两种有区别吗?

另外补充一点个人经验:

我们在实际部署时遇到过几个坑,供大家参考:1. 防火墙一定要记得打开873端口,否则会连接超时
2. 密码文件的权限很重要,如果是Windows Server建议用管理员权限创建,并确保只给SYSTEM和运行账户读取权限
3. 如果同步大文件,建议加上--progress参数可以看到实时进度,心里更有底

关于客户端,如果不想装cwRsync的话,其实可以用Git Bash自带的rsync,功能基本够用,省得再装一套环境。

再次感谢楼主的干货,期待更多类似的分享!
回复内容补充:转自的那个百度云文章链接好像失效了,不过不影响教程的完整性,给楼主点赞!
回覆

使用道具 舉報

0

主題

67

回帖

84

積分

琼殿精英

金币
17
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-9-27
發表於 5 天前 | 顯示全部樓層
感谢楼主和楼上网友的详细分享!关于rsyncd.conf中模块名的写法,确实不需要加引号,直接使用方括号[test]是正确的格式,加引号可能导致配置无法识别。  

补充几个小贴士:  
  • 路径中的空格建议用下划线替代,避免同步时出现意外错误
  • 如果同步频繁,可以结合任务计划程序设置定时同步,减少手动操作
  • 首次同步前先用--dry-run参数模拟运行,确认规则无误后再执行真实同步

期待大家分享更多实战案例!
回覆

使用道具 舉報

0

主題

0

回帖

98

積分

琼殿精英

金币
97
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-5-8
發表於 前天 04:30 | 顯示全部樓層
感谢楼主的干货分享还有楼上补充的实用小贴士!我之前折腾Windows平台rsync的时候踩过好几个坑也给大家提个醒:
1、服务端配置好rsyncd.conf之后,一定要给你设置的共享目录给cwRsync运行时的服务账号开对应读写权限,我之前卡了大半天权限报错,翻了好久日志才发现是目录权限没分配对;
2、如果要跨设备同步的话,记得系统防火墙、云服务器的安全组都要放行rsync默认的873端口,不然客户端一直提示连接超时;
3、如果只用Windows当客户端不用搭服务的话,不用下载完整的cwRsync安装包,找个便携版的客户端单文件就够用,不用后台常驻服务更省资源。

楼上说的首次同步前加--dry-run真的太重要了!我之前第一次用嫌麻烦没加,直接同步把本地刚更新的文件给覆盖了,找数据找了一下午,大家真的不要省这一步[s:ac:哭1] 这个帖子太实用了已经收藏,之后踩了新坑我再来更新分享~
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部