目录
3.2.2 将 server 服务器数据备份到 client 服务器
3.2.3 客户端配置client :(192.168.10.14)
4.3.1 server 服务端关闭只读模式并为共享目录赋权
4.3.3 客户端(192.168.10.14):编译安装 inotify-tools
前言
在系统管理员的工作中备份无疑是一个重要的部分。当没有完整备份或者良好规划的备份和实施时,就可能或早或晚不可挽回地丢失重要的数据。rsync 无疑是一个很好的选择,下面将介绍rsync的工作过程。
一、Rsync 远程同步
1.1 rsync 介绍
rsync(Remote Sync,远程同步)是一款开源的快速增量备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
rsync软件支持跨平台,适用于unix/ linux/windows等多种操作系统平台
rsync是一个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制
以其delta-transfer算法闻名。
rsync监听端口:873
rsync运行模式:C/S
官方网址:https://rsync.samba.org/
1.2 rsync 同步方式
1. 完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地
2. 差量备份:备份上次完全备份以后有变化的数据(它针对的上次的完全备份,备份过程中不清除存档属性)。
3. 增量备份:备份上次备份以后所有变化的数据(它不管是哪种类型的备份,有变化的数据就备份,会清除存档属性)。
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更快,如果是更大的文件,比如说40G,带宽只支持100M的带宽,scp想要传输,需要拆分数据,一段一段传输。而rsync会根据一个逻辑意义上的空间,把数据划分出来,把数据先压缩再传输,所以这种方式而言,带宽校,文件大,这个时候先压缩再传输会比较快。此时适合用rsync远程同步。
1.5 rsync实时同步
定期同步的不足:
- 执行备份的时间固定,延迟明显、实时性差
- 当同步源长期不变化时,密集的定期任务是不必要的
实时同步的优点:
- 一旦同步源出现变化,立即启动备份
- 只要同步源无变化,则不执行备份
二、rsync 命令
2.1 命令格式
rsync [选项] 原始位置 目标位置
2.2 常用的参数
常用选项 |
解释 |
-v,–verbose |
详细模式输出 |
-q,–quiet |
精简输出模式 |
-c,–checksum |
打开校验开关,强制对文件传输进行校验 |
-a,–archive |
归档模式,表示以递归方式传输文件,并保持所有文件树形,等同于-rlpt |
-z |
在传输文件时进行压缩 |
-r,–recursive |
对子目录以递归模式处理,包含目录及子目录中的所有文件 |
-H,–hard-links |
保留硬链接 |
-l, --links |
保留软链接 |
–delete |
删除目标位置有而原始位置没有的文件(一致性) |
–delete-after |
传输结束以后再删除 |
-A |
保留ACL属性信息 |
-D |
保留设备文件及其他特殊文件 |
-checksum |
根据对象的校验和来决定是否跳过文件 |
-o |
保留文件的属主标记(仅超级用户使用) |
-g |
保留文件的属组标记(仅超级用户使用) |
-t |
保留文件的时间标记 |
注:常用的是-avz
2.3 rsync本地复制实例
以下两者区别是什么?
-
rsync -avz abc/ /opt/ :只会拷贝abc目录下面的文件,而不会拷贝abc这个目录
-
rsync -avz /abc /opt/:会连着目录一起拷贝到/opt下
#如果是rsync -avz abc/ /opt/会是什么情况
cd /opt
mkdir /abc
cd /abc/
touch 1.txt 2.txt
cd /
rsync -avz abc/ /opt/
cd /opt/
ls
#如果是rsync -avz /abc /opt/会是什么情况
cd /opt/
rm -rf *
rsync -avz /abc /opt/
ls
#如果是rsync -avz abc/ /opt/会是什么情况
#如果是rsync -avz /abc /opt/会是什么情况
2.4 配置源的两种表示方法
方法一:
#用户名@主机地址: :共享模块名
rsync -avz backuper@192.168.10.13::wwwroot /root
#backuper指的是我在同步的时候用的哪个用户身份
#wwwroot代表的是模块,模块下面会写