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

  • Post author:
  • Post category: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, 否则后期服务打不


    注意事项

    : 需要把用户名 和 地址记录下来

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    在这里插入图片描述

  • 安装检验

    控制面板 -》 (小图标) 管理工具 -》 服务, 找到 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 SvcCWRSYNC@192.168.1.2::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]



版权声明:本文为weixin_38102912原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。