rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
它的特性如下:
1)可以镜像保存整个目录树和文件系统。
2)可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3)无须特殊权限即可安装。
4)快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
5)安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6)支持匿名传输,以方便进行网站镜象。
一下是我的一个rsync脚本,基本满足大部分需求:
rsync --compress --recursive --times --perms --owner --group --links --exclude=smarty/templates_c/ --timeout=30 [path] [user]@[ip]:[path]
echo '----------------------------------------------------'
echo "complete rsync [path] to [user]@[ip]:[path]"
参数解析:
-z, --compress 对备份的文件在传输时进行压缩处理
-r, --recursive 对子目录以递归模式处理
-t, --times 保持文件时间信息
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-l, --links 保留软链结
--exclude=PATTERN 指定排除不需要传输的文件模式
--timeout=TIME IP超时时间,单位为秒
rsync速度测试
我的同步目录大小是88M,执行命令
building file list ... done
sent 637987 bytes received 20 bytes 425338.00 bytes/sec
total size is 88738094 speedup is 139.09