欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rsync的部署及应用场景

程序员文章站 2022-05-30 07:50:16
...

rsync的部署及应用场景
rsync服务
提问艺术
你在做什么的时候 遇到什么故障 你如何排查 (控制10分钟)
发出问题的时候
截图全
同时发出 文字
问题解决
发出来如何解决
自己记录好
为何记录
经验
面试的时候
总结面试内容
发给面试官
面试
HR 约不
签到
笔试题
面试
技术(老大)
HR
Offer
准备环境
nfs01
backup

rsync特点

		Rsync是一款开源的、快速的、多功能的、可实现全量?及增量?的本地或远程数据同步备份的优秀工具。
		本地备份
			tar+定时任务
		远程?
			scp
			rsync
		全量复制
			全部复制(同步)过去(无论新旧)
		增量复制
			只复制(同步)有变化的(新的  新修改 新创建)
		一个rsync相当于scp,cp,rm,ls但是还优于他们每一个命令。
	rsync应用场景
		不同服务器之间数据备份
			定时任务+rsync
		存储服务器实时备份(同步)
			sersync + rsync
		项目
			1.全网备份
			2.存储实时同步解决存储单点故障
	rsync的各种姿势(模式)
		预备姿势
			推
				你---推--->其他服务器
				/etc/hosts (本地) 推到    172.16.1.31:/tmp
			拉
				你<---拉----其他服务器
				172.16.1.31:/etc/hosts      拉到本地 /tmp 
		rsync模式
			单词
				SRC  source 源 从哪里来
				DEST  destination 目标  到哪里去
				PULL   拉
				PUSH  推
			Local 本地
				cp
				rm
			Access via remote shell 远程模式
				scp
				增量
			Access via rsync daemon  rsync守护进程模式(服务端客户端)
		Local 本地
			/tmp   /tmp/ 区别
				/tmp    目录及目录的内容
				/tmp/     目录内容
			命令格式:rsync   源   目标
				从哪里来到哪里去
			rsync
				-a
				-v
					显示同步过程
				-z
					同步时候进行压缩
				--delete(极其凶险)
					目标 必须与源一模一样
			cp
			rm
				--delete参数
		Access via remote shell 远程模式
			scp 全量
			rsync 增量
				推:rsync  -avz   /etc/hostname    172.16.1.31:/tmp
				拉:rsync  -avz     172.16.1.31:/etc/hostname    /tmp
	rsync 守护进程模式

什么是rsync?
英文全称为Remote synchronization服务软件,缩写rsync。
Rsync 是一款开源的快速的 多功能的 可以实现全量以及增量本地或者是远程数据同步(拷贝)备份的优秀工具

在rsync中 /opt /opt/ 是有区别的

/opt   目录及目录内容
/opt/  目录内容
增量和全量的区别

全量复制 (用scp命令) : 全部复制(同步)过去(无论新旧)
增量复制 (用rsync命令) : 只复制(同步)有变化的(新的 新修改 新创建)
一个rsync相当于scp,cp,rm,ls但是还优于他们每一个命令。
全量复制:
[aaa@qq.com ~]# cp -a /etc/ /opt/
[aaa@qq.com ~]# \cp -a /etc/ /opt
[aaa@qq.com ~]# touch /etc/oldboy.txt
[aaa@qq.com ~]# \cp -a /etc/ /opt/
增量复制:
只复制oldboy.txt
Rsync 特性总结说明 ;
• 01:支持多种类型文件拷贝
• 02:支持文件复制排除功能
• 03:支持文件复制属性不变
• 04:支持文件复制增量同步
• 05:支持文件复制隧道加密
• 06:支持守护进程同步数据
• 07:支持数据同步身份验证

  1. 可以镜像保存整个目录树和文件系统;
  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
  3. 无须特殊权限即可安装;
  4. 优化的流程,文件传输效率高;
  5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
  6. 支持匿名传输,以方便进行网站镜像。

rsync应用场景

1.服务器之间数据备份(网站内部人员数据备份场景)
	定时任务+rsync

2.服务器实时备份(同步)
	sersync + rsync
项目
	1.全网备份
	2.存储实时同步解决存储单点故障

Rsync工作方式,介绍
1 本地方式 、 隧道方式(远程模式). 守护进程
2 单个主机本地之间的数据传输(此时类似于cp命令的功能)。
3 借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能)。
4 以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能)

Rsync的几种功能
rsync的部署及应用场景
● rsync格式
安装命令 yum install -y rsync

与scp的区别:

scp复制为完全覆盖,rsync为增量同步,只同步修改过的数据。

rsync命令格式如下:

  1. rsync 选项 源文件 目标目录(本地)
  2. rsync 选项 源文件 用户名@host:目标目录(本地文件同步到远程目录,ssh模式)
  3. rsync 选项 用户名@host:源文件 目标目录(远程目录同步到本地,ssh模式)
  4. rsync 选项 用户名@host::源文件 目标目录(daemon模式)
  5. rsync 选项 源文件 用户名@host::目标目录(daemon模式)
    ● rsync选项
    -a:归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD。后面可以跟–no-OPTION,表示关闭其中的某个选项。
    -r:对子目录以递归模式处理,主要针对目录
    -v:打印信息
    -l:保留软连接(只拷贝软连接文件,不拷贝目标文件)
    -L:像对待常规文件一样处理软连接,如果是src中有软连接文件,则加上该选项后会把软连接指向的目标文件拷贝到dst
    -p:保持文件权限
    -o:保持文件属主信息
    -g:保持文件属组信息
    -D:保持设备文件信息
    -t:保持文件时间信息
    -P:显示进度
    –delete:删除那些dst中src没有的文件
    –exclude=PATTERN:指定排除不需要传输的文件,等号后跟文件名
    –progress:在同步过程中可以看到同步的过程状态
    -u:会把dst中比src还新的文件排除掉,不会覆盖
    ● rsync选项详解
  6. 使用-a选项
    在备份目录时要养成加/的习惯,rsync -a test1/ test2/
  7. 使用-L选项
    rsync -avL test1/ test2/,将软连接的目标文件拷贝过去,不会拷贝软连接文件。
  8. 使用-u选项
    如果源文件内容修改,则会修改目标文件内容,如果目标文件修改,则不会覆盖目标文件内容。
  9. 使用–delete选项
    无论是源目录还是目标目录增加了新文件,如果加上这个选项,则会删除新增文件
  10. 使用–exclude选项
    有不想拷贝的文件时加上此选项

=开始部署=============
rsync的部署及应用场景
1.rpm -qa | grep rsync #查看软件是否安装
2**.rsync --version** #查看版本信息
11. 配置rsync软件的配置文件

cat >/etc/hosts<<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5      lb01
172.16.1.6      lb02
172.16.1.7      web01
172.16.1.8      web02
172.16.1.31     nfs01
172.16.1.41     backup
172.16.1.51     db01 db01.etiantian.org
172.16.1.61     m01
EOF

Rsync
使用三种主要的数据传输方式

**本地方式**

**远程方式**
 
**守护进程**
1. 本地传输方式 : 单个主机本地之间的数据传输 (此时类似于cp命令)

#本地拷贝数据命令
Local: rsync [OPTION…] SRC… [DEST]
#本地拷贝数据示例
[aaa@qq.com ~]# rsync ‐avz /etc/passwd /tmp/ rsync
#备份命令(cp)
[options] #选项
SRC… #本地源文件
[DEST] #本地目标文件

rsync的部署及应用场景
[aaa@qq.com ~]# #相当于cp功能
[aaa@qq.com ~]# cp /etc/hosts /tmp/
[aaa@qq.com ~]# ll /tmp/hosts
-rw-r–r-- 1 root root 559 May 18 15:43 /tmp/hosts
[aaa@qq.com ~]# rsync /etc/hosts /tmp/
[aaa@qq.com ~]# ll /tmp/hosts
-rw-r–r-- 1 root root 559 May 18 15:46 /tmp/hosts
rsync的部署及应用场景
rsync的部署及应用场景

[aaa@qq.com ~]# #相当于rm功能
[aaa@qq.com ~]# ls /opt/
offer.txt
[aaa@qq.com ~]# ls /tmp/
hosts yum.log
[aaa@qq.com ~]# rsync -avz --delete /opt/ /tmp/
sending incremental file list
deleting yum.log
deleting hosts
./
offer.txt

sent 162 bytes received 58 bytes 440.00 bytes/sec
total size is 163 speedup is 0.74
[aaa@qq.com ~]# ls /tmp/
offer.txt
rsync的部署及应用场景

模式二:远程通道传输方式 : 通过ssh通道传输数据 , 类似scp命令

#push 推送数据命令
Push: rsync [OPTION…] SRC… [aaa@qq.com]HOST:DEST
#push 推送数据示例 rsync ‐avz /backup/2018‐10‐01 [email protected]:/tmp/ Push
#推送, 上传
rsync #备份命令
[options] #选项 SRC…
#本地源文件 [aaa@qq.com] #目标主机的系统用户
HOST #目主机 IP 地址或域名
[DEST] #目标对应位置

scp默认只能复制普通文件,复制目录加上-r即可 全量
[aaa@qq.com ~]# #推送 本地/etc/hostname 到 nfs01 的 /tmp下面
[aaa@qq.com ~]# #推送 本地/etc/hostname 到 nfs01 的 /tmp下面
[aaa@qq.com ~]# scp /etc/hostname 172.16.1.31:/tmp/
[email protected]’s password:
hostname
rsync的部署及应用场景
[aaa@qq.com ~]# ls /tmp
hostname
[aaa@qq.com ~]# cat /tmp/hostname
backup
rsync的部署及应用场景
rsync的部署及应用场景

[aaa@qq.com ~]# #推送 本地/opt/believe.txt 到 nfs01 的 /tmp下面 #rsync 是增量传输
[aaa@qq.com ~]# ls /opt/
believe.txt offer.txt
[aaa@qq.com ~]# rsync -avz /opt/believe.txt 172.16.1.31:/tmp/
[email protected]’s password:
sending incremental file list

believe.txt

sent 90 bytes received 35 bytes 22.73 bytes/sec
total size is 0 speedup is 0.00
rsync的部署及应用场景
[aaa@qq.com ~]# ls /tmp
hostname
[aaa@qq.com ~]# ls /tmp
believe.txt hostname
rsync的部署及应用场景
#pull 拉取数据命令
Pull: rsync [OPTION…] [aaa@qq.com]HOST:SRC… [DEST]
#pull 拉取数据示例
[aaa@qq.com ~]# rsync ‐avz [email protected]:/etc/hostname ./ #拉取远程文件
[aaa@qq.com ~]# rsync ‐avz [email protected]:/root/ /backup/ #拉取远程目录下的所有文件
[aaa@qq.com ~]# rsync ‐avz [email protected]:/root /backup/ #拉取远程目录以及目录下的所有文件
Pull #拉取, 下载
rsync #备份命令
[options] #选项 [aaa@qq.com]
#目标主机的系统用户 HOST
#目主机 IP 地址或域名 SRC…
#目标主机源文件 [DEST]
#下载至本地哪个位置

[aaa@qq.com ~]# ls /tmp
believe.txt good hostname
rsync的部署及应用场景
[aaa@qq.com ~]# #拉取 nfs01 的/tmp/hostname 到 本地/opt/
[aaa@qq.com ~]# scp 172.16.1.31:/tmp/hostname /opt/
[email protected]’s password:
hostname 100% 7 3.1KB/s 00:00
[aaa@qq.com ~]# ls /opt/
believe.txt hostname
rsync的部署及应用场景

[aaa@qq.com ~]# #拉取 nfs01 的/tmp/good 到 本地/opt/
[aaa@qq.com ~]# rsync -avz 172.16.1.31:/tmp/good /opt/
[email protected]’s password:
receiving incremental file list
good

sent 43 bytes received 83 bytes 36.00 bytes/sec
total size is 0 speedup is 0.00
[aaa@qq.com ~]# ls /opt/
believe.txt good hostname
rsync的部署及应用场景

参数 –delete 删除那些nfs01中backup中没有的文件或目录,实现同步目标 必须与源一模一样。(此命令参数危险,尽量不要使用)
[aaa@qq.com ~]# ls /tmp
believe.txt good hostname
rsync的部署及应用场景
rsync的部署及应用场景
[aaa@qq.com ~]# ls /tmp
believe.txt study
rsync的部署及应用场景

[aaa@qq.com ~]# ls /tmp
believe.txt good nice study
rsync的部署及应用场景

[aaa@qq.com ~]# #拉取 nfs01 的/tmp/good 到 本地/opt/
[aaa@qq.com ~]# ls /opt/
believe.txt study
[aaa@qq.com ~]# rsync -avz --delete 172.16.1.31:/tmp/ /opt/
[email protected]’s password:
receiving incremental file list
./
good
nice

sent 70 bytes received 390 bytes 131.43 bytes/sec
total size is 163 speedup is 0.35
[aaa@qq.com ~]# ls /opt/
believe.txt good nice study
rsync的部署及应用场景