Rsync软件介绍
rsync是一款实现全量与增量复制同步的软件工具
Rsync软件的七大特性
一、支持拷贝普通文件与特殊文件,如链接文件、设备等
二、支持排除指定文件或目录同步的功能,如tar命令的排除功能
三、支持保留原文件或目录的所有属性信息不变
四、支持增量同步,只同步变化数据,提升数据传输效率
五、支持rcp、rsh、ssh等方式来配合进行隧道加密传输方式
六、支持使用通过socket(守护进程方式)传输文件或目录信息
七、支持用户认证方式传输数据,提升数据同步安全性
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]#