项目中会产生很多数量在千万级别的图片文件,由客户端图形工作站生成,发布在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目录