前几天帮忙解决一个项目中文件同步效率的问题。

项目环境用的是Windows 2003服务器,每天数次定时将当天产生的新文件同步到另外一台服务器上。

项目组的人使用的是cwRsync同步的策略,每隔一段时间便自动运行批处理脚本同步一次。

后来发现一个小问题,源目录中文件数量实在太多,每次同步时创建同步列表的时间太长,用户不太满意。

我正好在测试jNotify,但没法上传文件过去,而且那边又觉得没必要做实时同步,只要求把同步速度提高一点就行了。

临时就应付了个懒办法,将每次同步时间从接近20分钟降到不足40秒,凑合着满足需求就行了。

懒办法:

每次同步前,利用xcopy命令将当天产生的文件先复制到一个临时目录,然后将临时目录同步过去。虽然每次同步前都要复制一堆文件,但因临时目录中文件数较少,同步速度比之前是提高很多了。

批处理脚本如下:

rmdir d:\temp\rsyncfiles /S/Q
mkdir d:\temp\rsyncfiles
xcopy d:\files  /s/a /d:%date:~5,2%-%date:~8,2%-%date:~0,4%   d:\temp\rsyncfiles /Y

rsync -aurlt –port 873 “/cygdrive/d/temp/rsyncfiles  xx.xx.xx.xx::ModuleName


12条评论

  1. 很有道理,受用了!

  2. 批处理脚本很强大实用啊

  3. 不错,,

  4. 很想多读些书呢!

  5. 不错

  6. 批处理脚本很强大实用啊

  7. 很强大 很实用

  8. 对这些都不懂 搬走了

  9. 不错,,

  10. 说得不错!

  11. 很有道理,受用了!

  12. 学习了。。

发表评论

评论也有版权!

click to change验证码