rsync简介

Rsync简介

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台。

Rsync是一个快速和非常通用的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。它以其delta-transfer算法闻名。减少通过网络数据发送数量,利用只发送源文件和目标文件之间的差异信息,从而实现数据的增量同步复制。

Rsync服务命令在应用时,属于一个非常强大的命令,可以通过rsync一个命令,替换下面4个命令的操作:

  1. 实现本地数据同步复制(等价命令cp)
  2. 实现远程数据同步复制(等价命令scp)
  3. 实现数据信息删除功能(等价命令rm)
  4. 实现数据信息查看功能(等价命令ls)

 

Rsync备份软件7大特性总结:

  1. 支持拷贝普通文件与特殊文件如链接文件,设备等
  2. 支持排除指定文件或目录同步的功能,类似tar命令排除功能。
  3. 支持保持原文件或目录的所有属性信息不变
  4. 支持增量同步,既只同步变化数据,提升数据传输效率
  5. 支持使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件
  6. 支持使用通过socket(守护进程方式)传输文件或目录数据信息
  7. 支持用户认证方式传输数据,提升数据同步安全性

 

Rsync复制同步数据原理:

在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据,即采用增量复制方法对数据信息进行同步,与传统cp,scp拷贝工具的全量拷贝复制截然不同,增量同步复制数据,在效率上远远高于全量复制。

 

Rsync服务所拥有三种传输数据方式(man rsync)

①. 本地数据备份方式
Local: rsync [OPTION…] SRC… [DEST]
rsync — 数据备份传输命令
option — 可以输入一下和rsync传输数据有关的参数
src — 要进行备份的数据(文件/目录)
dest — 将数据信息备份到什么位置(相应路径中)

实践练习:
[root@backup ~]# rsync -a /etc/hosts /tmp/ok.txt
[root@backup ~]# ll /tmp/ok.txt
r第一种数据备份排除方式:–excludew-r–r– 1 root root 352 Jan 12 23:10 /tmp/ok.txt

②. 远程数据备份方式
Access via remote shell:
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

pull方式语法说明:
rsync — 数据备份传输命令
option — 可以输入一下和rsync传输数据有关的参数
[USER@]HOST: — 需要指定以什么用户身份登录到远程主机,
如果省略USER信息,表示以当前用户身份进行登录
登录主机地址或域名信息
SRC — 指定远程主机要传输过来到本地的数据信息
dest — 将数据保存到本地的什么路径中

实践练习:
[root@backup ~]# rsync -a 172.16.1.31:/etc/sysconfig/network /tmp
root@172.16.1.31’s password:
[root@backup ~]# ll /tmp
total 4
-rw-r–r– 1 root root 30 Jan 12 23:26 network
-rw——-. 1 root root 0 Jan 12 22:34 yum.log

push方式语法说明:
rsync — 数据备份传输命令
option — 可以输入一下和rsync传输数据有关的参数
[USER@]HOST: — 需要指定以什么用户身份登录到远程主机,
如果省略USER信息,表示以当前用户身份进行登录
登录主机地址或域名信息
SRC — 指定本地主机要传输到远程主机的数据
dest — 将本地数据保存到远端的什么路径中

实践练习:
[root@backup ~]# rsync -a /etc/sysconfig/network 172.16.1.31:/tmp
root@172.16.1.31’s password:
[root@nfs01 ~]# ll /tmp
total 4
-rw-r–r– 1 root root 31 Jan 12 23:10 network
-rw——-. 1 root root 0 Jan 12 22:34 yum.log

③. 守护进程传输模式
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

pull:rsync [OPTION…] [USER@]HOST::SRC… [DEST]
[USER@]HOST:: — 指定远程连接的认证用户
SRC — 指定相应的模块信息
[DEST] — 将远程数据保存到本地的路径信息

Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
[USER@]HOST:: — 指定远程连接的认证用户
SRC — 指定本地要进行推送的数据信息
[DEST] — 远程进行保存数据的模块信息

 

Rsync服务命令参数说明:

命令参数 参数说明
-v, –verbose 详细模式输出,详细显示数据传输备份情况
-z, –compress 传输时进行压缩以提高传输效率,–compress-level=NUM可按级别压缩。局域网可以不用压缩
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rtopgDl
-r, –recursive(属于-a参数) 对子目录以递归模式,即目录下的所有目录都同样传输
-t, –times(属于-a参数) 保持文件时间属性信息
-o, –owner(属于-a参数) 保持文件属主信息
-g, –group(属于-a参数) 保持文件属组信息
-p, –perms(属于-a参数) 保持文件权限
-D, –devices (属于-a参数) 保持设备文件信息
-l, –links(属于-a参数) 保留软链接(小写字母l)
-P, –progress 显示同步的过程及传输时的进度等信息
-e, –rsh=COMMAND 使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh
–exclude=PATTERN 指定排除不需要传输的文件信息。
–exclude-from=file 文件名所在的目录文件,即可以实现排除多个文件
–bwlimit=RATE 实现数据传输过程限速传输,限制速率单位为kbytes