linux---集群架构初探(4)rsync企业项目案例
RSYNC的优缺点
优点
1.增量备份,支持socket(daemon)守护进程模式,集中备份(支持推拉模式备份)
2.远程shell通道模式还可以加密(ssh)传输
3.socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务
缺点
1.大量小文件复制的时候,rsync进程因为比对的原因可能会卡死或速度较慢(解决办法:先压缩再拷贝)
2.一次性远程拷贝可以用scp
Rsync企业常用工作场景
1.服务器之间数据备份(定时任务cron+rsync)
在集群架构中,搭建一台备份服务器,用于全网服务器的数据备份工作,利用定时任务功能将所有服务器本地重要的数据定时rsync到备份服务器上。
定时备份主要用于内部人员(开发、运维)产出的代码的备份。
2.两台服务器之间实时数据备份(实时任务inotify/sersync+rsync)
实时备份主要用于用户上传的数据,如图片、视频、文字等。
Rsync企业项目案例
公司有一台web服务器,数据重要,领导要求做数据备份,以便数据丢失后可以恢复数据
备份要求:
每天0点在web服务器A上打包备份系统配置文件、网站程序目录以及访问日志并通过rsync命令推送到备份服务器B上
服务器信息:
服务器说明 | 外网IP | 内网IP | 主机名称 |
nginx web服务器 | 192.168.1.7/24 | 172.16.1.7/24 | web01 |
NFS存储服务器 | 192.168.1.31/24 | 172.16.1.31/24 | nfs01 |
rsync备份服务器 | 192.168.1.41/24 | 172.16.1.41/24 | backup |
注:实际工作中NFS和rsync服务器是没有外网IP的,运维人员通过vpn连接服务器内网进行工作。
备份思路:
现在本地按日期打包,再推送到备份服务器上。
注:在实际工作中NFS存储服务器和web服务器就是运维主要管理的服务器。
具体要求:
①所有服务器的备份目录必须都为 /backup
②要备份的系统配置文件包括但不限于:
a)定时任务服务的配置文件 (/var/spool/cron/root) (适合web和nfs服务器)
b)开机自启动的配置文件 (/etc/rc.local) (适合web和nfs服务器)
c)日常脚本的目录 (/server/scripts)
③Web服务器站点目录假定为/var/html/www,如果没有可以先模拟创建
④Web服务器访问日志路径假定为/app/logs,如果没有可以先模拟创建。
⑤Web服务器本地保留打包后的7天备份数据即可(本地留存不能多于7天因为太多硬盘会满)。
⑥备份服务器 backup上,保留最近7天的备份数据,同时保留6个月内每周一的所有数据副本
⑦备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存
⑧需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据是否完整进行检查。
⑨每天早晨8:00把备份成功或失败结果信息发到系统管理员邮箱中。
具体操作流程(模拟):
1.搭建服务器并测试
搭建参考:https://www.cnblogs.com/1016391912pm/p/12995659.html 中的守护进程模式
2.创建模拟目录、编写脚本并测试
创建模拟目录、脚本
编辑脚本
注意:tar参数f要放在最后面,find查找多文件时-name要用单引号,rsync推送子文件最后加上斜杠 如/backup/
测试通过
3.添加定时任务
crontab -e
4.确保备份文件完整性
一要确保本地打包正常,二要确保传输过程没问题
在web服务器的/server/scripts/bak.sh脚本中添加两行命令:
5.在备份服务器上设置定时脚本,删除多余备份文件,验证文件正确性
直接这样发送的话,会被邮箱当做垃圾邮件过滤掉,可以使用邮箱授权码,通过邮箱间发送,打开163邮箱获取授权码:
配置文件/etc/mail.rc,在最后一行加上:
这样是自己给自己发邮件,测试:
web01服务器(今天是6月1号):
backup服务器:
查看以收到文件
然后执行一遍删除检查脚本
/bin/bash /server/scripts/bak_del.sh
查看邮箱,已收到邮件: