rsync:
可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。支持Linux,Window平台。
优点:
1、可以镜像保存整个目录树和文件系统;
2、可以很容易做到保持原来文件的权限、时间、软硬链接等;
3、无须特殊权限即可安装;
4、优化的流程,使用同步算法,只比较变化的,文件传输效率高;
5、可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
6、支持匿名传输,方便网站镜像;也可以做验证,加强安全;
缺点:
- rsync做数据同步时,需要扫描所有文件后进行对比,然后进行差量传输。如果文件很大,扫面文件是非常耗时的
- rsync不能实时监测、同步数据
Windows Server 配置:
- 下载cwRsyncServer_4.0.5_Installer资源(
资源查看我的上传, 免费下载
), 解压安装, 安装时, 一路回车就行 - 找到安装目录, 并在rsyncd.conf里进行如下配置:
1. strict modes = false 不验证用户密码
2. pid = 0,uid = 0指定匿名访问
3. [test] : 客户端标识, 一般填上项目组名字
4. path: 目标目录, 但是写的时候应该按照POSIX风格来写,默认配置文件的写要写成cygdrive,如D:/1/2/3,要写成/cygdrive/d/1/2/3
- 配置完成之后, 添加进站出站规则, 默认端口是
873
, 把873
配置成进出站都可 - 找到RsyncServer服务, 配置成自动, 然后启动,
- 此时, windows的RsyncServer的已经配置好了
Client配置
- 客户端直接
下载附录的客户端
, 解压 - 创建如下的run.bat文件:
将ip和test的部分, 换成服务器的ip 和 服务器配置文件中配置的标识(server配置第二步有讲)
最后两个, 一个时服务器目录, 一个时客户端目录, ./代表当前目录
如果要上传, 将这两个目录的位置调换一下即可
rsync -avz --progress --delete -L --copy-links --no-owner --no-group --no-perms ip::test ./
- 直接执行run.bat, 即可同步目录