Rsyn软件介绍

Rsync软件介绍

rsync是一款实现全量与增量复制同步的软件工具

Rsync软件的七大特性

一、支持拷贝普通文件与特殊文件,如链接文件、设备等
二、支持排除指定文件或目录同步的功能,如tar命令的排除功能
三、支持保留原文件或目录的所有属性信息不变
四、支持增量同步,只同步变化数据,提升数据传输效率
五、支持rcp、rsh、ssh等方式来配合进行隧道加密传输方式
六、支持使用通过socket(守护进程方式)传输文件或目录信息
七、支持用户认证方式传输数据,提升数据同步安全性

Rsync数据同步原理

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

Rsync软件的参数

命令参数 参数说明
-v, --verbose 详细模式输出,详细显示数据传输备份情况
-z, --compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。局域网可以不用压缩
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rtopgDl
-r, --recursive(属于-a参数) 对子目录以递归模式,即目录下的所有目录都同样传输
-t, --times(属于-a参数) 保持文件时间属性信息
-o, --owner(属于-a参数) 保持文件属主信息
-p, --perms(属于-a参数) 保持文件权限
-g, --group(属于-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

Rsync软件三种工作方式

一、本地数据备份方式
Local:  rsync [OPTION...] SRC... [DEST]
rsync       ---- 数据传输命令
[OPTION...] ---- 与rsync命令相关的参数
SRC         ---- 要进行备份的数据(文件/目录)
[DEST]      ---- 将数据备份到什么位置(相应的路径)
#实例:
[root@backup tmp]# rsync /etc/hosts /tmp
[root@backup tmp]# ll
total 4
-rw-r--r-- 1 root root 352 Feb 11 14:54 hosts
二、远程数据备份方式
Access via remote shell:
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Pull方式:
rsync       ---- 数据传输命令
[OPTION...] ---- 与rsync命令相关的参数
[USER@]HOST ---- 指定以什么身份来登陆到远程主机,如果省略则会心当前用户进行登陆,HOST指远程主机的IP地址或者域名
SRC         ---- 指定远程主机要传输到本地的数据信息
[DEST]      ---- 指定数据保存在什么位置

实例:
[root@backup tmp]# rsync -a -e 'ssh -p 10000' 172.16.1.31:/etc/sysconfig/network /tmp
root@172.16.1.31's password: 
[root@backup tmp]# ll
total 8
-rw-r--r-- 1 root root 352 Feb 11 14:54 hosts
-rw-r--r-- 1 root root  30 Feb 10 23:45 network

Push方式:
rsync       ---- 数据传输命令
[OPTION...] ---- 与rsync命令相关的参数
[USER@]HOST ---- 指定以什么身份来登陆到远程主机,如果省略则会心当前用户进行登陆,HOST指远程主机的IP地址或者域名
SRC         ---- 指定本地主机要传输到远程的数据信息
[DEST]      ---- 指定本地数据保存远程主机的什么位置

实例:
本地端
[root@backup tmp]# rsync -a -e 'ssh -p 10000' 172.16.1.31:/etc/sysconfig/network /tmp
root@172.16.1.31's password: 
[root@backup tmp]# ll
total 8
-rw-r--r-- 1 root root 352 Feb 11 14:54 hosts
-rw-r--r-- 1 root root  30 Feb 10 23:45 network
[root@backup tmp]# rsync -a -e 'ssh -p 10000' /tmp/ 172.16.1.31:/tmp
root@172.16.1.31's password: 
[root@backup tmp]# 
远程端
[root@nfs01 tmp]# ll
total 640
-rw-r--r-- 1 root root    352 Feb 11 14:54 hosts
-rw-r--r-- 1 root root     30 Feb 10 23:45 network
三、守护进程传输模式
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...] ---- 与rsync命令相关的参数
[USER@]HOST:: -- 指定远程连接的用户
SRC         ---- 指定相应的模块
[DEST]      ---- 将远程数据保存在本地的什么位置

Push方式:
rsync       ---- 数据传输命令
[OPTION...] ---- 与rsync命令相关的参数
[USER@]HOST:: -- 指定远程连接的用户
SRC         ---- 指定本地要进行推送的数据信息
[DEST]      ---- 远程进行保存数据的模块信息

Rsync的简单应用(1v4)

一、Rsync=cp
#cp命令
[root@backup tmp]# cp /etc/services /tmp
[root@backup tmp]# ll
total 632
-rw-r--r-- 1 root root    352 Feb 11 09:22 hosts
-rw-r--r-- 1 root root 641020 Feb 11 10:01 services
#rsync命令
[root@backup tmp]# rsync /etc/passwd /tmp
[root@backup tmp]# ll
total 636
-rw-r--r-- 1 root root    352 Feb 11 09:22 hosts
-rw-r--r-- 1 root root   1056 Feb 11 10:02 passwd
-rw-r--r-- 1 root root 641020 Feb 11 10:01 services
[root@backup tmp]# 
二、rsync=scp
#scp备份到远程服务器
[root@backup tmp]# scp -rp -P 10000 /tmp 172.16.1.31:/tmp
root@172.16.1.31's password: 
services                                                    100%  626KB 626.0KB/s   00:00    
passwd                                                      100% 1056     1.0KB/s   00:00    
hosts                                                       100%  352     0.3KB/s   00:00    
[root@backup tmp]# 
#rsync备份到远程服务器
注:同步数据时,/tmp/目录后有/信息,表示将目录下面的数据内容进行备份同步
   同步数据时,/tmp目录后没有/信息,表示将目录及目录下面的数据内容进行备份同步
[root@backup tmp]# rsync -rp -e 'ssh -p 10000' /tmp/ 172.16.1.31:/tmp
root@172.16.1.31's password: 
[root@backup tmp]# 
三、rsync=rm
说明:rsync实现删除目录中数据内容过程,就将一个空目录和一个有数据的目录进行同步,最终会将有数据的目录中的文件进行清空
[root@backup tmp]# mkdir /null
[root@backup tmp]# ll
total 636
-rw-r--r-- 1 root root    352 Feb 11 09:22 hosts
-rw-r--r-- 1 root root   1056 Feb 11 10:02 passwd
-rw-r--r-- 1 root root 641020 Feb 11 10:01 services
[root@backup tmp]# rsync -r --delete /null/ /tmp
[root@backup tmp]# ll
total 0
[root@backup tmp]# 
四、rsync=ls
[root@backup tmp]# ls -l /etc/hosts
-rw-r--r--. 2 root root 352 Feb 10 20:35 /etc/hosts
[root@backup tmp]# rsync /etc/hosts
-rw-r--r--         352 2019/02/10 20:35:35 hosts
[root@backup tmp]# 
原文地址:https://www.cnblogs.com/yjiu1990/p/10508617.html