一、rsync
1.1 rsync简介
-
rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。
-
rsync软件支持跨平台,适用于unix/ linux/windows等多种操作系统平台
-
rsync是一个快速和非常方便的文件复制工具,能够本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制
-
以其delta-transfer算法闻名。
-
rsync监听端口:873
-
rsync运行模式:C/S
1.2 rsync同步方式
-
备份:原有的数据全部传送,把原来的文件和新的文件一起统一传送,全量复制,效率低
-
增量备份:在传输数据之前通过一些算法对双方的数据进行对比,把不一样的数据通过网络传输增量复制,效率高
1.3 rsync特性
-
可以镜像保存整个目录和文件系统
-
可以很容易做到保持原文件的权限、时间、软硬连接等
-
无须特殊权限即可安装
快速:
第一次同步时rsync会复制全部内容,但在下一次同步中会只传输修改过的文件
rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的宽带
安全:
可以使用scp、ssh等方式来传输文件,也可通过直接 socket 连接
支持匿名传输,以方便进行网站镜像
1.4 rsync与cp、scp对比
-
cp 命令是一种典型的将文件完整的拷贝到一个位置。而 rsync 则是在第一次拷贝时,目标位置没有相对应的数据的情况下,rsync会全量拷贝过去,但是第二次拷贝的时候,只会对差异项进行同步拷贝。所有如果对同一个文件进行二次备份的话,rsync 速度会相较于 cp 会更快。并且cp只支持本地,而rsync支持远程。
-
scp 是基于 cp 原理,也是属于完整性拷贝文件。假设 rsync 和 scp 拷贝的文件都是第一次,目标地址都没有要同步的文件,此时,这两者的差异在于,一是要看这个要传输的文件大不大,二是要看在传输的过程中,用的带宽大不大。如果文件不大的情况下,scp 是把数据从磁盘中的块存储提取出来,封装一下,网络传过去,此时 scp 更快,如果是更大的文件,比如说 20G,带宽只支持 50M 的带宽,scp 想要传输,需要拆分数据,一段一段传输。而 rsync 会根据一个逻辑意义上的空间,把数据划分出来,把数据先压缩再传输,所以这种方式而言,带宽小,文件大,这个时候先压缩再传输会比较快。此时适合用 rsync 远程同步。
1.5 rsync命令
常用选项 解释
-v,–verbose :详细模式输出
-q,–quiet :精简输出模式
-c,–checksum :打开校验开关,强制对文件传输进行校验
-a,–archive :归档模式,表示以递归方式传输文件,并保持所有文件树形
-z :在传输文件时进行压缩
-r,–recursive :对子目录以递归模式处理,包含目录及子目录中的所有文件
-H,–hard-links :保留硬链接
-l,–links :保留软链接
–delete :删除目标位置有而原始位置没有的文件(一致性)
–delete-after :传输结束以后再删除
-A :保留ACL属性信息
常用的是 -avz
1.6 rsync本地复制实例
-
rsync -avz abc/ /opt/ :只会拷贝abc目录下面的文件,而不会拷贝abc这个目录
-
rsync -avz /abc /opt/:会连着目录一起拷贝到/opt下
#如果是rsync -avz aaa/ /opt/会是什么情况
cd /opt
mkdir /aaa
cd /aaa/
touch 1.txt 2.txt
cd /
rsync -avz aaa/ /opt/
cd /opt/
ls
#如果是rsync -avz /aaa /opt/会是什么情况
cd