采用rsync 实现 windows 端(服务器) 和 linux 端 (客户端) 文件传输

需求

大文件采用命令行进行传输,scp传输大文件比较慢

参考资料

链接1, https://www.cnblogs.com/01-single/p/8652597.html
链接2, https://www.cnblogs.com/xiaoyou2018/p/11535888.html

将 windows (win10)作为 服务器 端,将 linux/ubuntu18.04 作为 * 客户端*

windows 服务器端操作

windows端 下载及安装

  • rsync 安装包 下载地址:
    https://www.backupassist.com/rsync/

  • 安装过程:
    全部Agree, 注意不要更改 安装地址 用户命 和 密码, 采用默认SvcCWRSYNC, 否则后期服务打不
    注意事项: 需要把用户名 和 地址记录下来
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    采用rsync 实现 windows 端(服务器) 和 linux 端 (客户端) 文件传输_第1张图片

  • 安装检验
    控制面板 -》 (小图标) 管理工具 -》 服务, 找到 RsyncServer, 若可以打开则okay,并设置该服务类型 为 启动 (右键) ; 若没有对应的服务,则重新安装,全部默认选项。
    注意事项: 在未来更改 rsyncd.conf 文件以后,需要不懂重新启动该服务,才可以使得改动生效。

设置 rsync 传输文件夹

  • 在D盘中新建 D:/1_rsyncBakup 作为 待传输的文件夹 以传输目标文件到linux客户端
  • 右击该文件D:/1_rsyncBakup,属性 -》 安全, 把 rsync 账户 (SvcCWRSYNC) 添加进来,并设置权限为 完全控制 。如 链接1
  • 修改配置文件 rsyncd.conf (路径: C:\Program Files (x86)\ICW\rsyncd.conf) 如
    重要修改内容:
    port = 52326 含义指定一个目标端口;
    path = /cygdrive/d/1_rsyncBakup 含义指定路径/d/1_rsyncBakup (p.s. 这里注意指定盘符,否则后续找不到客户端找不到路径)
    secrets file = etc/rsyncd.secrets 存放用户名密码的认证文件路径, 在C:\Program Files (x86)\ICW\etc 文件夹下,新建 文件rsync.secrets 写入 SvcCWRSYNC:test1234 test1234这里是对应显示的密码
    其余内容 最好也设置一下
    在设置以后 注意重启rsync服务
UID = 0
GID = 0
use chroot = false
strict modes = false
hosts allow = *
max connections = 5
port = 52326
log file = rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/d/1_rsyncBakup
read only = false
transfer logging = yes
auth users = SvcCWRSYNC
secrets file = etc/rsyncd.secrets
lock file = rsyncd.lock

检验是否安装成功

  • 首先查出本机的服务器ipv4地址 (win+r 输入 cmd 打开命令行后输入, ipconfig), 假设为 192.168.1.2

  • 其次 检验 telnet 服务是否安装 ,安装链接, 这里注意,只开启 指定的端口 52326 端口,操作方法:【开启】—【控制面板】–【Windows防火墙】–【高级设置】–【入站规则】–【新建规则(在界面的最右边)】—【端口】–【Tcp】–输入【特定本地端口(我这边就是输入52326)】–【允许连接】–【具体情况下可配置只允许访问的用户,这边没有配置,直接下一步】–【配置可访问的计算机,这边也没有配置,直接下一步】–【域,专用,公用都选择上,下一步】–【输入规则名称(比如我这边是要开发tomcat让外面访问,就起名TomcatServer)】–【完成即可】

  • 最后 在命令行中输入 telnet 192.168.1.2 52326 进行服务器内部 telnet测试链接,若出现 @RSYNCD: 30.0 则连接正常

linux 客户端操作

安装及配置

本机使用的是ubuntu 18.04 系统,自带rsync服务,不用安装 按照 链接 进行配置。

测试 客户端 是否可以与服务器端连接

telnet 192.168.1.2 52326 ,若出现 @RSYNCD: 30.0 则连接正常

测试数据是否 可以手动同步

rsync --port=52326 -vzrtopg --progress [email protected]::1_rsyncBakup ~/test
这里会提示输入密码:test1234 (此处的密码为cwRsyncServer服务端C:\Program Files (x86)\ICW\etc\rsyncd.secrets文件配置的密码)

含义为 将 服务器端d:/1_rsyncBakup 里的文件拷贝到 客户端~/test

-vzrtopg参数 中的 rp 代表断点续传,可以解决大文件的传输问题; 进一步 r:递归方式 v:详细提示 z:压缩 t:修改次数 -o --owner:保持owner属性(属主) -g --group:保持group属性(属组) -p --perms:保持perms属性(权限,不包括特殊权限)。
--progress:指显示
--delete参数,这个的意思是服务器端与客户端保持完全一致,客户段与服务端不同的文件客户端会进行删除操作,这里小编建议新手不要加上这个参数,如果服务端误操作删掉了文件那你所有的机器都会删掉这个文件,就会很麻烦,所以先可以不加这个参数

rsync的进一步用法可参考 rsync 用法

定时执行

暂时不需要没设置,参考链接1,链接2

一些常见补充 的提示

https://www.cnblogs.com/szw/p/3381705.html
https://www.jb51.net/article/31920.htm

https://www.jb51.net/article/60194.htm
注意当出现问题 注意检查 rsyncd.conf 里 路径 path的 盘符问题,一下午时间浪费在这个上了。。。。

@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1495) [rec
eiver=3.0.2]

你可能感兴趣的:(linux,windows)