详解linux中rsync的妙用

355 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。


1.rsync备份服务器软件介绍:

Rsync是一款开源的、快速的、多功能的、可实现全量及增长的本地或远程数据同步备份的优秀工具。增量备份:只同步变化的数据细腻些,主要利用了quick check算法实现 同步原理:

1.建立好网络连接

2.先进行数据信息对比

3.只将变化的数据进行增量备份

2.rsync软件作用说明:(1v4 cp/scp/rm/ls)

1)本地数据备份:cp
[root@backup ~]# cp -a /etc/hosts /tmp/hosts_cp
[root@backup ~]# ll /tmp/hosts_cp
-rw-r--r--. 1 root root 349 Jun 20 05:59 /tmp/hosts_cp
[root@backup ~]# rsync -a /etc/hosts /tmp/hosts_rsync
[root@backup ~]# ll /tmp/hosts_rsync
-rw-r--r-- 1 root root 349 Jun 20 05:59 /tmp/hosts_rsync

PS: rsync -a /null/ /tmp/ 同步目录的时候,目录后面有/(/null/),表示将目录下面的内容进行备份同步

rsync -a /null /tmp/ 同步目录的时候,目录后面没有/(/null),表示将目录下面的内容及目录本身进行备份同步

2)远程数据备份:scp
[root@nfs01 ~]#scp -rp /etc/sysconfig/network 172.16.1.41:/tmp/network_scp
[root@nfs01 ~]#rsync -rp /etc/sysconfig/network 172.16.1.41:/tmp/network_rsync
3)数据删除操作:rm
[root@nfs01 ~]#rsync -a --delete /null/ /tmp/
4)查看数据信息:ls
[root@backup ~]# rsync /etc/hosts
-rw-r--r--    349 2020/06/20 05:59:49 hosts

PS:172.16.1.41是接收端服务器ip地址,“:”是判断ip尾部的终止符号

3.rsync软件特点说明:

1)支持拷贝普通文件与特殊文件入链接文件、设备等
2)可以排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
3)可以保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不变-p
4)可以增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)
5)可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
6)可以通过socket(进程方式)传输文件和数据(服务器和客户端)
7)支持匿名的或认证(无需系统用户)的进程模式传播,可实现方便安全的进行数据备份及镜像

4.rsync软件的工作方式:(如何应用)

1)本地备份数据方式(同等cp命令)
Local:  rsync [OPTION...] SRC... [DEST]
rsync           ---数据备份命令
[OPTION...]     ---命令参数信息
src             ---要进行同步备份的源文件或目录信息
[DEST]          ---将数据备份同步到本地系

2) 远程备份数据方式(同等scp命令)
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
rsync           ---数据备份命令
[OPTION...]     ---命令参数信息
[USER@]         ---以什么用户身份进行数据拉去
HOST(主机名或ip地址):SRC    ---从哪个远程主机上,将指定的数据进行备份同步
[DEST]   ---将远程主机拉去过来的数据保存到本地什么路径中

5.实际应用的例子:

1)将bacuop服务器上/tmp/ppp123.txt数据拉取备份到本地nfs服务器/opt目录中?

[root@nfs01 ~]# # Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
[root@nfs01 ~]# rsync -a 172.16.1.41:/tmp/ppp123.txt /opt   
[root@nfs01 ~]# ll /opt/oldboy123.txt
-rw-r--r-- 1 root root 0 Jun 20 11:20 /opt/ppp123.txt

2)将nfs服务器上/tmp目录进行推操作到备份服务器的/usr/local目录中

[root@nfs01 ~]# #Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
[root@nfs01 ~]# rsync -a 172.16.1.41:/tmp  /usr/local
[root@backup ~]# ll /usr/local

6.利用'拉'和'推'的方式实现数据同步命令详解

1)从备份服务器上将数据拉取到本地,用于数据恢复

Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync           ---数据备份命令
OPTION...]      ---命令参数信息
[USER@]         ---指定进行传输数据认证用户信息
HOST::          ---指定备份服务器的ip地址或主机名称信息
SRC             ---指定备份服务器上模块名称
[DEST]          ---将数据传输同步到本地主机的指定路径下
	
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
总结:从备份服务器上将数据拉取到本地,用于数据恢复

2)从存储服务器上将数据推送到远程服务器上,用数据备份

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync           ---数据备份命令
OPTION...]      ---命令参数信息
SRC...          ---指定将本地服务器上数据进行备份
[USER@]         ---指定进行传输数据认证用户信息 
HOST::          --- 指定备份服务器的ip地址或主机名称信息
DEST            ---指定备份服务器上模块名称
	
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
总结:从存储服务器上将数据推送到远程服务器上,用数据备份

参照服务器:在什么服务器执行操作命令,对应的服务器就是参照服务器 推:在参照服务器上执行命令,将本地数据怼到远程主机上 拉:在参照服务器上执行命令,将远程数据怼到本地主机上