一、rsync 软件介绍
1、 什么是rsync
rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。
全量:将全部数据,进行传输覆盖
增量:只传输差异部分的数据
2、 实现增量复制的原理
Rsync通过其独特的“quick check”算法,实现增量传输数据在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。
centos 5 rsync 2.x 先比对再同步,速度较慢
centos 6 rsync 3.x 一边比对,一边对差异部分进行同步
3 rsync 软件功能介绍
类似于 cp 命令 – 实现本地备份传输数据
类似于scp 命令 – 远程备份传输数据
类似于 rm 命令 – 实现无差异同步备份
类似于 ls 命令 – 本地文件信息查看
rsync 命令属于1 v 4 的命令
4、 Rsync特性总结(特性信息说明)
- 支持拷贝普通文件与特殊文件如链接文件,设备等。
- 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
[root@backup opt]# tar -zcvf backup_1.tar.gz /opt/data --exclude=5.txt
tar: Removing leading `/' from member names
/opt/data/
/opt/data/1.txt
/opt/data/2.txt
/opt/data/3.txt
/opt/data/4.txt
说明:在打包/opt/data时就排除了5.txt。
03. 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
04. 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
05. 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
06. 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
07. 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
5、 Rsync的企业工作场景说明
- 两台服务器之间数据同步(定时任务cron+rsync)同步网站内部人员数据信息(定时任务最小周期为1分钟)
- 两台服务器之间数据同步(实时任inotify/sersync/lrsyncd+rsync)同步网站用户人员数据信息
二、rsync使用方式
1、rsync软件工作方式
SYNOPSIS
本地数据同步方式
Local: rsync [OPTION...] SRC... [DEST]
远程数据同步方式
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
守护进程方式同步数据
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
1.1 本地数据同步方式(类似于cp)
Local: rsync [OPTION...] SRC... [DEST]
参数 含义
rsync 数据同步命令
[OPTION...] rsync命令参数信息
SRC 要同不得数据信息(文件或目录)
[DEST] 将数据传输到什么位置
实例演示命令:
[root@backup /]# rsync /etc/hosts /opt/
[root@backup /]# ls /opt/hosts
/opt/hosts
1.2 远程数据同步方式(类似scp)—又称为隧道传输
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
说明:需要进行交互传输数据。如果想实现免交互传输数据,需要借助ssh+key方式实现
pull: 拉:
[USER@] : 以什么用户身份传输数据信息
HOST: 远程主机信息(IP地址信息 主机名称信息)
SRC: 远端要恏过来的数据信息
[dest] 恏到本地什么位置
push:推:
SRC: 本地要怼过去的数据信息
DEST 怼到远端什么位置
1.3 【实践操作】pull 拉
从远端拉文件到当前目录
[root@nfs01 opt]# touch 1.txt
[root@backup opt]# rsync root@192.168.206.133:/opt/1.txt /opt/
root@192.168.206.133's password:
[root@backup opt]# ls
1.txt hosts
[root@backup opt]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 8 20:21 1.txt
-rw-r--r--. 1 root root 158 Apr 8 20:16 hosts
[root@backup opt]#
1.4 【实践操作】push 推 (目录)
将本地的hosts文件推到远端服务器上