我的一台服务器是一个图像存储库,其中有超过一百万个文件分布在大约300个目录中.每个文件平均只有几百千字节.比其他任何一个盒子都要多,这个问题证明是有问题的.
rsync进程将工作一段时间 – 有时是20分钟,有时是一小时 – 然后它只是退出并以给定的文件名闲置.
我已验证该文件在远程服务器上没有损坏,并且该文件已在本地驱动器上成功创建.我在-vv模式下运行rsync客户端,它不返回任何内容.我检查了守护进程创建的日志.我查看了接口上的网络利用率,它正处于空闲状态.我查看了AV设置,看看是否有任何问题可能造成问题.我甚至更新到Cygwin的最新版本.
为了保持这种连接,我需要什么?
编辑:
客户端系统正在使用该命令
rsync.exe server::Drives/f/Repo/ /cygdrive/T/Repo --archive -P -vv
服务器正在使用该命令
rsync.exe –daemon –no-detach –config“rsyncd.conf”
rsyncd.conf的内容:
use chroot = false strict modes = false hosts allow = 192.168.100.9 log file = c:/rsyncd.log uid=0 gid=0 [Drives] path = /cygdrive read only = yes
编辑:
文件服务器是2003,阵列上的磁盘类型是GPT,阵列的大小约为4 TB.
编辑:
陌生人..看起来这个过程在大约175,000个文件中可靠地出错.当我选择同一个目录时,Rsync运行正常.
编辑:
rsync version 3.0.9 protocol version 30 Copyright (C) 1996-2011 by Andrew Tridgell,Wayne Davison,and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files,64-bit inums,32-bit timestamps,64-bit long ints,no socketpairs,hardlinks,symlinks,IPv6,batchfiles,inplace,append,ACLs,xattrs,iconv,symtimes
从使用Cygwin的同一组文件转到Linux安装时发生类似的故障.然而,直到比正常时间晚几个小时才发生.
解决方法
要弄清楚实际发生了什么,你可能想尝试使用额外的-v参数运行rsync,看看你是否可以获得足够的细节来查看它挂起时它正在做什么.如果这没有帮助,您可以考虑在strace或ltrace下运行rsync.
作为解决方法,您可以尝试使用–include-from = FILE指定要包含的目录列表,然后列出您提到的300个目录.我不确定这是否会遇到你所看到的同一个问题.
如果这不起作用,你可以循环遍历目录列表和每个单独的rsync,例如:
for DIR in $(cat file_of_dirs); \ do rsync.exe server::Drives/f/Repo/$DIR /cygdrive/T/Repo --archive -P -vv; \ done
(写给bash / bourne shell,因为你说你安装了Cygwin.可以在行的末尾没有尾部斜杠的情况下完成一行.)
显然,这并没有回答为什么rsync会为你挂起的问题,但它应该让你的文件再次同步.