首页 > 其他分享 >rsync增量备份

rsync增量备份

时间:2023-04-05 18:26:10浏览次数:33  
标签:rsync 同步 备份 增量 etc 监控 rsyncd

一、rsync远程同步
1、什么是rsync远程同步
rsync是C/S架构的数据镜像备份工具,可以实现全量备份和快速增量备份支持本地复制或ssh、rsync主机同步。

rsync默认端口为 873

rsync特性:可以在不通主机之间镜像同步整个目录树,支持增量备份、保持链接和权限、时间、属性且传输前自动执行压缩、rsync不需要特殊权限即可安装,centos系统默认安装,支持匿名传输,注意发起端要有对应目录位置的读权限

2、rsync备份类型
完全备份:每次备份将备份源所有文件或目录备份到目的。

差量备份:备份上次完全备份以后有变化的数据。

增量备份:备份上次完全备份以后有变化的数据。

3、rsync同步方式
①本地复制:首先是将源文件和目的位置文件对比找出差异,然后将源文件与目的位置的差异部分进行一致性同步。

②上行同步:客户端与服务端同步内容,可以理解为客户端从服务器上下载内容

③下行同步:服务端与客户端同步内容,可以理解为客户端将内容上传到服务器

4、rsync -az 原始位置  目标位置

                用户名@IP::共享模块名  rsync -avz [email protected]::myhtml /opt/ky26

 发起端:负责发起rsync,同步操作的客户机叫做发起端,通知服务器我要备份你的数据。

备份原:负责响应来自客户机rsync同步操作的服务器叫做备份原,需要备份的服务器

服务端:运行rsync服务,一般来说需要备份的服务器

客户端:存放备份数据

 

 

二、rsync下行同步实验部署

实验环境

客户端:192.168.10.10

服务端:192.168.10.11

 

1、服务端配置

mkdir    /var/www/html  -p
#创建要同步的文件夹
vim  /etc/rsyncd.conf     
#编辑rsync服务配置文件
文件内容:
uid = root	    #用户id,注意不用root使用rsync同步时可能会报错
gid = root	    #组id,注意不用root使用rsync同步时可能会报错
use chroot =yes	    #开启禁锢目录,只允许模块授权的源路径
address =192.168.30.11	    #监听的地址即server地址
port 873			        #监听地址的那个端口
log file =/var/log/rsyncd.log	#日志文件位置
pid file =/var/run/rsyncd.pid	#pid文件位置
hosts allow = 192.168.30.0/24	#允许谁使用
max connections = 4 			#最大连接数
[lhjhtml]                       #模块名称
path = /var/www/html		    #源文件路径
comment = Document root of www.lhj.com	#模块说明,随便写
read only =yes	                #是否只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z 	#这些类型结尾的文件不压缩
auth users = lhj cxx		                #授权可登录用户 lhj   cxx 多用户以空格隔开
secrets file = /etc/rsyncd_users.db       #rsyncd服务账户密码文件位置,保存退出
vim  /etc/rsyncd.users.db         #编辑rsyncd账户密码文件
lhj:123456          #添加账户密码,以:隔开
cxx:123456          #添加完成后保存退出
chmod 600 /etc/rsyncd_users.db          #修改rsyncd服务文件权限为只允许属主可读写
rsync  --daemon                         #启动rsyncd服务
netstat -antp  |grep  rsync             #查看是否启动成功
echo "test rsync">/var/www/html/a.txt   #同步源目录中创建文件a.txt内容为"test rsync"

  

 

 

2、客户端配置

mkdir  -p /opt/ky26      #创建client同步接收文件位置
chmod 777 /opt/ky26      #接收文件位置权限添加
vim /etc/server.pass     #创建免交互密码文件将密码输入
123456                   #lhj和cxx的密码为123456
chmod  600  /etc/server.pass     #秒交互密码文件只允许属主可读写
rsync  -avz   --password-file=/etc/server.pass  [email protected]::lhjhtml   /opt/ky26 同步到ky26文件夹中
注意:若同步失败需要先在client上ssh一下server登录再退出。
注意:如果报错为 error: some files/attrs were not transferred (see previous errors)
(code 23)t main ,c(1179) [sender=3.1.2]则是因为rsyncd.conf配置文件中的uid和组id不是root cat /opt/ky26/a.tx#client上验证是否有a.txt

  

 

 

三、inotify实时同步
Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wi2vGkDb-1651391770143)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1650545689160.png)]

1.调整inotify内核参数(优化)
/etc/sysctl.conf(内核参数配置文件),需要配置
max_queue_events :监控事件队列大小
max_user_instances :最多监控实例
max_user_watches :每个实例最多监控文件数
配置的监控数量应该大于监控目标的总文件数

2.使用inotify-tools辅助工具
inotifywait:用于持续监控,实时输出结果
可监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一有变动立即输出结果。
inotifywatch:用于短期监控,任务完成后再输出结果
可用来收集文件系统变动情况,并在运行结束后输出汇总的变化情况。

inotifywait -mrq -e modify,create,attrib,move,delete 文件或目录
-m 持续进行监控
-r 递归监控所有子对象
-q 简化输出信息
-e 指定要监控哪些事件类型
modify 修改
create 创建
attrib 属性更改
move 移动
deletc 删除

3.编写同步脚本

vim /opt/inotify_rsynx.sh
#!/bin/bash
#定义两个变量:监控文件,执行备份
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete 需要监控的目录或文件"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/密码文件 刚才监控的目录或文件 用户名@主机地址::共享模块名"

#while read获取监控结果
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
#当读取目录,事件,文件
do
#如果rsync没有运行,执行rsync进行备份操作
if [ $(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done

  

 

 

 

4、验证实时同步

cd /opt/
chmod +x inotify.sh 
./inotify.sh 
执行脚本后会在前台执行占用窗口,重新开个窗口执行以下命令验证
cd /opt/ky26
echo "12345">1.txt
然后到服务端查看是否上传完成

  

 

标签:rsync,同步,备份,增量,etc,监控,rsyncd
From: https://www.cnblogs.com/trist-commot/p/17282740.html

相关文章

  • rsync—远程同步 上行同步 下行同步
     一、rsync1.1rsync简介(1)rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步......
  • Redis数据库容灾备份企业实战及故障恢复【转】
    本章目录0x00数据持久化1.RDB方式2.AOF方式如何抉择RDBORAOF?0x01备份容灾 一、备份1.手动备份redis数据库2.迁移Redis指定db-数据库3.Redis集群数据备份与迁移二、恢复1.系统Redis用户被删除后配置数据恢复流程2.Kubernetes中单实例异常数据迁移恢复实践......
  • oracle数据库按用户备份恢复,使用 expdp、impdp
    1,在数据库本机执行su-oracle切换oracle用户sqlplys/assysdba使用超级用户登select*fromdba_directories;查看管理员目录,一般会存在几个。2,导出命令,expdpuser/passwd@orclschemas=userdumpfile=expdp.dmpdirectory=DATA_PUMP_DIRlogfile=expdp.log##......
  • rsync远程同步:下行同步、上行同步+inotify实时同步
    一、rsync远程同步1.什么是rsync远程同步rsync是CS架构的数据镜像备份工具,可以实现全量备份和快速增量备份支持本地复制或ssh、rsync主机同步。rsync默认端口为873rsync特性:可以在不通主机之间镜像同步整个目录树,支持增量备份、保持链接和权限、时间、属性且传输前自动执行压......
  • rsync远程同步实验
     配置源服务器   systemctlstopfirewalld setenforce0rpm-qrsync#一般系统已默认安装rsync#建立/etc/rsyncd.conf配置文件vim/etc/rsyncd.conf#添加以下配置项uid=root......
  • openGauss备份恢复之gs_dumpall
    一、概述gs_dumpall是一款用于导出数据库相关信息的工具,支持导出完整一致的openGauss数据库所有数据,同时不影响用户对数据库的正常访问。二、工具1、特点gs_dumpall是openGauss用于导出所有数据库相关信息工具,它可以导出openGauss数据库的所有数据,包括默认数据库postgres的数据、自......
  • openGauss备份恢复之gs_restore
    一、概述gs_restore是openGauss提供的针对gs_dump导出数据的导入工具。通过此工具可由gs_dump生成的导出文件进行导入。二、工具1、特点gs_restore是openGauss提供的针对gs_dump导出数据的导入工具。通过此工具可将由gs_dump生成的导出文件进行导入。gs_restore工具由操作系统用户o......
  • 脚本批量备份交换机路由器配置研究
    交换机路由器配置文件备份批量脚本powershellrouterswitchbackupsshpowershell传教士原创文章。始于2023-04-02允许转载,但必须保留名字和出处,否则追究法律责任 ---【前言】---最近我看了一篇文章。讲的是:【目的】:以5分钟为循环周期,经ssh,用密码,用py批量备份交换......
  • 全量窗口与增量窗口
    全量和增量是可以共用的,这种场景还是比较常见的。例如,分组后,先对每个组进行增量计算,然后对每个增量计算,做一个全窗口的计算。这个时候,就需要互相结合使用了。    一:窗口函数说明1:apply与process的区别 apply和process都是处理全量计算,但工......
  • 备份 Linux 系统神器:rsync
    导读探索rsync在备份方案中的作用。在系统管理员的工作中备份无疑是一个重要的部分。当没有完整备份或者良好规划的备份和实施时,就可能或早或晚不可挽回地丢失重要的数据。所有公司,无论大小,都运营在数据之上。考虑到丢失业务数据造成的经济和业务损失,从最小的个人公司到......