使用 rsync 从Windows到Linux同步大量小文件

linuxisperfect 2011-04-13

项目中会产生很多数量在千万级别的图片文件,由客户端图形工作站生成,发布在Linux系统挂载的EMC上。

    目前找了很多种方法,包括压缩后上传,ftp直接上传,使用rsync上传等等,效果均不是很理想,使用rsync上传是目前速度最快的。

    目标:从windows系统将文件目录以及文件上传至linux系统下

    1.使用windows作为服务端,安装cwRsyncServer_4.0.4;

      安装过程中的注意事项:

      必须先建立windows用户,在安装过程中会使用到新建立的用户,否则,不能成功安装。成功后的标志,在windows的服务中有                  Rsyncserver的服务(举例:新建的用户名称为user)

    2.配置安装完成后的rsync.config文件

      注意:

              uid = nobody             //不可少

              gid = nobody            //不可少
              use chroot = no
              max connections = 5

              [file]                               //匹配的文件名称
             path = /cygdrive/c/work         //表示匹配的目录是C:/work目录
             ignore errors
             read only = no
             list = yes

             hosts allow=*                        //对连接的地址不限制

             outgoing chmod =Du=rwx,Dog=rx,Fu=rwx,Fgo=rx          //特别注意:这里使用outgoing chmod 参数,这样,同步到服务上的文件其他用户就拥有读取权限。
             secrets file = /etc/rsyncd.secrets

       配置完成后在windows管理---服务---中其中Rsyncserver的服务。

 


    3.在linux系统上使用命令,RedHat server默认便可以使用rsync命令

      可以先使用telnet windows机器IP 873 (默认端口)     命令来测试服务是否正常发布,出现rsync版本信息则说明能发布成功

         使用命令来同步

            rsync -vrtopg --progress user@windows机器IP::file/  /mnt

         表示:将windows机器下C盘work下所有目录以及文件都上传至服务器上mnt目录下

         注意:这里file后面的“/”很重要,如果带上,表示work目录下所有,不包含work目录,如果不带,则表示包含work目录

相关推荐