定期自动打包Rsync备份服务
定期自动打包Rsync备份服务
一、备份
1.什么是备份?
1 | 备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步 |
2.为什么做备份?
1 | 数据在公司中是很重要!!!! |
3.能不能不做备份
1 | 对于重要的数据一定要备份 |
4.备份的工具
1 | 本地备份:cp |
5、scp命令及参数
1、概念及参数
1 | Linux scp 命令用于 Linux 之间复制文件和目录。 |
2、应用实例
1 | 一、从本地复制文件到远程 |
6、rsync常用参数
1 | -a #归档模式传输, 等于-tropgDl -t -r -o -p -g -D -l |
1、–exclude-from=file 排除不需要的文件
1 | #创建多个文件 |
2、–bwlimit=100 限速传输
1 | #创建一个1G的文件 |
3、delete 数据一致 (无差异同步)
1 | #查看客户端数据 |
二、rsync服务介绍
1.简介
1 | rsync英文称为remote synchronizetion,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。 |
2.rsync特性
1 | 支持拷贝特殊文件,如连接文件、设备等。 |
3.生产场景备份方案
1 | 1.借助cron+rsync把所有客户服务器数据同步到备份服务器。 |
三、Rsync应用场景
1.备份方式
1)全量备份
1 | 将数据完整的复制一份保留下了 |
2)增量备份
1 | 备份上一此备份后新增的数据 |
2.rsync的传输方式
1 | push 推: |
3.传输存在的问题
1 | 1.推的问题:当客户端服务器数量过多,容易造成数据推送缓慢 |
4.大量服务器备份场景
1 | 现在有2000台服务器,怎么有效快速的缓解推和拉存在的问题 |
5.异地备份实现思路
四、Rsync传输模式
1.传输模式
1 | 1.本地方式(类似于cp,不支持推送和拉取,只是单纯的复制) |
2.本地方式
1 | #语法: |
3.远程方式
1)pull 拉取数据的命令
1 | #语法: |
2)push 推送数据命令
1 | #语法 |
3)注意事项
1 | 1、[root@web01 ~]# rsync -avz root@172.16.1.41:/tmp/1.txt ./2.txt #将远程服务器1.txt文件全量备份到当前目录下并重命名为2.txt |
4.守护进程传输模式
1)为什么使用守护进程模式
1 | 1.rsync传输时,使用的是系统用户和系统用户的密码,非常的不安全 |
2)守护进程传输模式语法
1> push 推送语法
1 | #语法: |
2> pull 拉取语法
1 | #语法: |
5.守护进程模式实践
1)环境准备
主机 | IP | 主机角色 |
---|---|---|
2)服务端rsync
1、服务端安装修改配置文件
1 | [root@backup ~]# yum install -y rsync |
2、创建配置文件运行需要的环境
1 | 1.创建用户 |
3、启动服务
1 | [root@backup ~]# systemctl start rsyncd |
3)客户端rsync
1 | #下载安装 |
6.客户端推拉数据方法
1)方法一:自己输入密码
1 | #输入密码的方式 |
2)方法二:设置密码文件,运行时读取
1 | #指定密码文件的方式 |
3)方法三:添加环境变量
1 | [root@web01 ~]# export RSYNC_PASSWORD=123456 #临时添加 |
7.rsync常见报错
1 | 1.报错内容: |
五、Rsync备份案例
1、准备服务器
主机 | IP | 身份 |
---|---|---|
2.了解需求
1 | 客户端需求: |
3、客户端需求
1、创建备份目录
1 | #尝试获取信息 |
2、打包数据
1 | #打包 |
3、推送文件
1 | [root@web01 ~]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup |
4、将以上步骤写成脚本
1 | [root@web01 ~]# vim rsync_client.sh |
5、将脚本加入定时任务
1 | [root@web01 ~]# crontab -e |
6、只保留七天数据
1 | #模拟到今天的数据 |
7、加入脚本
1 | [root@web01 ~]# vim rsync_client.sh |
8、客户端先判断文件是否存在
1 | [root@web01 ~]# vim rsync_client.sh |
4、服务端需求
1、部署rsync服务端
2、客户端加入校验码操作
1 | #!/bin/bash |
3、校验文件
1 | [root@backup backup]# md5sum -c /backup/*_$(date +%F)/flag_2020-11-19 |
4、使用邮件发送消息
1 | #1.服务端配置邮件功能 |
5、服务端脚本
1 | [root@backup ~]# vim rsync_server.sh |
6、将服务脚本加入定时任务
1 | [root@backup ~]# crontab -e |
六、Rsync结合inotify
1、安装inotify
1 | [root@web01 ~]# yum -y install inotify-tools |
2、常用参数
1 | -m 持续监控 |
3、测试命令
1 | /usr/bin/inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /backup |
4.实时备份脚本编写
1)粗略版
1 | [root@backup ~]# vim rsyn-inotify.sh |
2)精油版
1 | #!/bin/bash |