2.rsync

一.啥是备份

1.1什么是备份?
就是对数据文件增加一个副本。(备份)

1.2为什么要备份?
数据重要。 数据不是很重要,可以考虑不做备份。(比如日志)

1.3备份使用什么方式?
全备:完全拷贝,效率低下。
增备:拷贝变化,效率高。

1.4备份使用什么工具?
rsync:c/s架构软件,支持全量拷贝、后续增量拷贝。
scp: 远程拷贝工具,基于ssh协议来实现,是一个全备工具。

实际使用时,防止备份时候数据量过大将带宽打满,可以做个限速

1.5rsync应用场景:
完成多台服务器之间备份
rsync在1台或多台服务器之间实现数据传输
推:上传 ( 好比电脑 --> 云盘 )
拉:下载 ( 好比电脑 <-- 云盘)

二.rsync三种模式:

	1.本地模式
	2.远程传输模式
	3.守护进程模式
1.本地模式

作用类似于cp命令

例:
#touch /test/test{1..3}.txt
在/test路径下创建3个测试文件

#rsync -av /test/ /test1
将/test下的文件拷贝到/test1
在这里插入图片描述
支持增量拷贝
例:
#touch /test/test{4..6}.txt
在/test路径下再创建3个测试文件
在这里插入图片描述

#rsync -av /test/ /test1
再次将/test路径下的文件拷贝到/test1
在这里插入图片描述
对比两次的输出内容,会发现第二次只拷贝了3个测试文件,也就是新增的test4.txt test5.txt test6.txt这3个文件
就是增量拷贝,只拷贝后来新增的内容,这样可以节省拷贝的时间

rsync的目录格式
使用rsync时要注意 /test/ 与/test 的区别
#rsync -av /test/ /test1
表示将/test目录下的所有内容拷贝到/test1路径下

#rsync -av /test /test1
表示将/test路径下的所有内容,以及/test目录,一并拷贝到/test1路径下

2.远程传输模式

下载pull:
例:
#rsync -av root@192.168.51.180:/test/test*.txt /test
将192.168.51.180主机上/test目录下的所有测试文件拷贝到本地的/test路径下

rsync 参数 用户@IP地址:/要拷贝的内容 /拷贝到哪里
在这里插入图片描述

上传push:
例:
#rsync -av /test/test*.txt root@192.168.51.180:/test1
将本地/test路径下的所有测试文件,传到192.168.51.180主机的/test1目录下

rsync 参数 /要上传的内容 用户@IP地址:/要传到哪个路径下
在这里插入图片描述

这种模式会有以下顾虑:

1.需要使用ssh协议进行传输  ( 保证传输的安全 )
2.他需要依赖服务器的系统用户和密码。( 不安全 )
3.给一个普通用户来进行拷贝。 ( 权限不足 )
3.守护进程模式

守护进程模式 ,采用的是虚拟用户虚拟密码,意味着这个用户不存在与系统中,这对虚拟用户密码是我们使用服务来定义的

1.安装 rsync ---- 在服务端安装配置
yum install rsync -y

2.修改配置文件
vim /etc/rsyncd.conf

        uid = rsync #进程运行的用户
		gid = rsync #进程运行的用户组
		port = 873
		fake super = yes
		use chroot = no
		max connections = 200
		timeout = 600
		ignore errors
		read only = false #开启读写
		list = false
		auth users = rsync_backup #定义的虚拟用户名称
		secrets file = /etc/rsync.passwd #在该路径下的文件中,定义虚拟用户以及虚拟用户的密码
		log file = /var/log/rsyncd.log
		#####################################
		[backup] #模块名称
		comment =  backup!
		path = /backup #该模块对应的真实路径

3.根据配置文件的配置,来完成初始化工作
3.1 创建一个进程依赖的用户 rsync ( 叫任何都可以 )
[root@backup ~]# useradd rsync -s /sbin/nologin -M

3.2 创建一个密码文件,密码文件中 ( 虚拟用户名称:虚拟用户密码)
[root@backup ~]# echo “rsync_backup:123” > /etc/rsync.passwd
[root@backup ~]# chmod 600 /etc/rsync.passwd
这个密码文件其他用户不能有权限,不然会报错,所以这里要设置其他用户不能对该文件有操作权限

3.3 创建数据存储的目录
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R rsync.rsync /backup/
rsync服务是以rsync这个虚拟用户的身份来把文件存到/backup目录中的,如果用户rsync对/backup目录没有读写权限的话,是没法存放文件的,随之就会报错

4.启动
#systemctl start rsyncd
#systemctl enable rsyncd

5.测试 ---- 在客户端测试
注意:这里的IP地址后面跟的是::不是:

push:
rsync -av /test1/test*.txt rsync_backup@192.168.51.187::backup
在这里插入图片描述

pull:
rsync -av rsync_backup@192.168.51.187::backup /test
在这里插入图片描述

三.rsync的参数

-a           #归档模式传输, 等于-tropgDl
-v           #详细模式输出, 打印速率, 文件数量等
-z           #传输时进行压缩以提高效率
-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t           #保持文件时间信息
-o           #保持文件属主信息
-p           #保持文件权限
-g           #保持文件属组信息
-l           #保留软连接
-P           #显示同步的过程及传输时的进度等信息,包含--progress和--partial(断点续传)
-D           #保持设备文件信息
-L           #保留软连接指向的目标文件
-e           #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN   #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
--bwlimit=100       #限速传输
--partial           #断点续传
--delete            #让目标目录和源目录数据保持一致
--progress: 显示拷贝进度
--partial:保留不完整文件,实现断点续传
--partial-dir=DIR:指定不完整文件的存储目录,而不是默认存储到目的地目录。
--rsh=ssh:使用ssh方式传输文件,注意:如果之前设置过ssh免密码登录,那么此时也就不需要密码了,非常方便

1.显示传输的速率:
在这里插入图片描述

2.限速: 10=10MB ==相当于百兆带宽在这里插入图片描述
3.–delete 使用时要特别注意

推送: 客户端强制要求服务端与之保持一致。 客户端有啥服务端就有啥。
拉取: 服务端强制要求客户端与之保持一致。 服务端有什么,客户端就有什么,服务端没有什么,客户端就什么都没有。

#rsync -avz --delete /mnt/ rsync_backup@192.168.51.180::backup

4.排除–exclude
在这里插入图片描述

–exclude-from 排除多个文件

#cat /opt/pc.txt 将要排除的多个文件写入一个文件里,然后选择这个文件,进行排除操作

bigdata
bigfile

#rsync -avz --exclude-from=pc.txt /opt/ rsync_backup@192.168.51.180::backup

5.免密操作

方法一:
使用--password-file的方式指定
将密码写在某个文件里,/etc/rsync.pass,操作时选择该文件进行免密

rsync -avz test.txt rsync_backup@192.168.51.180::backup --password-file=/etc/rsync.pass

方法二:
RSYNC_PASSWORD 设置环境变量的方式
(只针对当前Shell窗口有效,如果重新打开一个创建则无效。)

这种用法适合写在脚本中。因为脚本每次在执行时,都要从头到尾执行一次,意味着每次都会设定一下该环境变量。

export RSYNC_PASSWORD=123
rsync -avz test.txt rsync_backup@192.168.51.180::backup

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值