Linux与Windows文件同步

Linux与Windows文件同步

本次采用的同步方式是rsync,Rsync是一款免费且强大的同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket等方式连接,支持匿名传输。支持Linux,Window全平台。下面我将我的部署步骤与一些相关设置记录一下,网上也有很多差不多的步骤,主要是一些配置没有讲明白与清楚,所我特记录一下。

一 、 Windows服务端部署

  1. 下载安装包

    因为Windows服务端最新版本的已经收费了,所以我们采用4.1版本,这里的安装包是由Bulut0907提供,点这里下载

    下载完解压哦

  2. 安装

    • 双击cwRsyncServer_4.1.0_Installer.exe进行安装
    • 选择安装路径
    • 设置账号密码(用户名与密码要记住,后面会有用。如果安装的电脑有登录密码,则必须为登录密码)
      Linux与Windows文件同步
      image-20210809150940174
    • Install安装
  3. 配置

    • 找到你刚安装路径中的rsyncd.conf,修改相对应的配置,配置如下

      use chroot = false
      strict modes = false
      hosts allow = *
      log file = rsyncd.log
      # Module definitions
      # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
      #
      # 配置模块,这个模块名在同步的时候会用到
      [test]
      # 配置同步的存储路径,这里的路径需要注意一下,比如我的路径其实是我的D盘下的file目录下的share文件夹。谨记谨记谨记,我就卡在这上面卡了好久。
      path = /cygdrive/d/file/share
      # 忽略一些io错误
      ignore errors
      # 用于设置是否允许上载。默认false,代表允许上载。
      read only = no
      #允许连接的ip段或个别ip,默认任何人都可以连接
      #hosts allow = *
      # 指定的用户,这里的用户在Windows中就是你刚刚安装的时候创建的用户名
      auth users = rsync
      #指定用户名和密码文件 格式: 用户名:密码,这里的账号与密码就是你安装时设置的账号密码,这里的路径格式与上面一同,谨记
      secrets file = /cygdrive/d/1/rsyncd.password
      #设置进行数据传输时所使用的帐户名或ID号,默认使用nobody
      uid = 0
      #设置进行数据传输时所使用的组名或GID号,默认使用nobody
      gid = 0
      # 上面都ID值都设置成0,不然的话在传输的时候会有报错 @ERROR: invalid uid nobody 
      
    • 创建rsyncd.password文件,注意路径,例如我的路径是在 D:\1下,那么你就在这目录下创建

      Linux与Windows文件同步
      image-20210809153250909

    • 密码文件授权

      C:\Program Files (x86)\ICW> .\bin\chmod.exe 600 /cygdrive/d/1/rsyncd.password
      

      Linux与Windows文件同步
      image-20210809153625069

    • 文件存储文件夹授权

      Linux与Windows文件同步
      image-20210809153844920

  4. 启动服务,win+r 输入 services.msc ,如下图操作

Linux与Windows文件同步
image-20210809154246550

二 、Linux端客户端部署

因之前有相关详细的部署步骤,所就不再重复描述了。

lsyncd+rsync同步方案

inotify+rsync同步方案

三、 遇到的一些问题

  • 同步的时候提示无目录

    Windows目录需注意,看下是不是配错了

  • 提示无权限

    查看Windows那个目录是否授权

    哦对了,还有一个问题:使用lsyncd方案的时候Linux无法与加域的Windows同步,传输不过去,也无任何报错,但改为非加域的机器就可同步了,有没有大神解答一下,在线求!!!

Linux与Windows文件同步

上一篇:黄金圈法则


下一篇:【曹工杂谈】Maven IOC容器的下半场:Google Guice