rsync实现全网备份案例

全网备份案例

某公司里有一台web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份.

要求:
每天晚上12点整在web服务器A(web01)上打包备份网站程序目录并通过rsync命令推送到服务器B(backup)上备份保留
(备份思路可以是先在本地按日期打包,再利用rsync推到备份服务器上)
具体要求:
1)web服务器A和备份服务器B的备份目录必须都为/backup
2)web服务器A和站点目录假定为(/var/www/html)
3)web服务器A本地仅保留7天内的备份
4)备份服务器上[每周六的数据都保留],其他备份仅保留180天备份
5)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱

web服务器的操作步骤:

第一步:
在web服务器上根据日期打包文件到/backup备份目录,将要打包的文件都放在备份目录下
tar zchf /backup/html.date +%F_%w -d ‘-1day‘.tar.gz /var/www/html/
tar zchf /backup/conf.date +%F_%w -d ‘-1day‘.tar.gz /etc/rc.local /etc/hosts /var/spool/cron/

第二步:
在将备份目录推送之前,加指纹信息,方便服务端的验证,前提是创建指纹的客户端路径和服务端路径相同才可以
最好是在客户端生成目录,推送到服务端的backup
find /backup/ -name ‘*.tar.gz‘ |xargs md5sum >/backup/check.txt
md5sum -c check.txt
/backup/conf.2018-01-22.tar.gz: OK
/backup/html.2018-01-22.tar.gz: OK

第三步:
将已经备份好压缩文件推送到rsync备份服务器上,推送完整的数据,到模块指定的目录下
rsync -az /backup/ [email protected]::backup/web01 --password-file=/etc/rsync.password
但是当创建了web01这个目录时,指纹就不可以使用了,因为客户端和服务端的路径不相同,这也是为什么要目录相同的原因

第四步:
推送完以后,按照要求,仅保留7天以内的备份
find /backup -name ‘*.tar.gz‘ -mtime +7 -type f |xargs rm -f

第五步:
将完成的步骤编写一个脚本放在定时任务中
vim /server/scripts/web01.backup.sh
#!/bin/bash

#backup html and conf
tar zchf /backup/html.date +%F_%w -d ‘-1day‘.tar.gz /var/www/html/ &>/dev/null
tar zchf /backup/conf.date +%F_%w -d ‘-1day‘.tar.gz /etc/rc.local /etc/hosts /var/spool/cron/ &>/dev/null

#make md5
find /backup/ -name ‘*.tar.gz‘ |xargs md5sum >/backup/check.txt

#rsync push backup
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.password

#del 7 days ago
find /backup -name ‘*.tar.gz‘ -mtime +7 -type f |xargs rm -f

crontab -e
#backup conf and html
00 00 * /bin/bash /server/scripts/web01.backup.sh &>/dev/null

rsync服务器的操作步骤:

第一步:
发送邮件给运维管理人员
md5sum -c /backup/check.txt >/backup/result.log
mail -s "result" [email protected] </backup//result.log

第二步:
删除180天之前的备份文件,保留每周六的备份文件
find /backup/ -name ‘.tar.gz‘ ! -name ‘_6.tar.gz‘ -mtime +180 |xargs rm -f

第三步
编写脚本以及定时任务
vim /server/scripts/web01.sh

#!/bin/bash

#check and send mail
md5sum -c /backup/check.txt >/backup/result.log
mail -s "result" [email protected] </backup//result.log

#del 180 days ago and save sat
find /backup/ -name ‘.tar.gz‘ ! -name ‘_6.tar.gz‘ -mtime +180 |xargs rm -f

crontab -e
#send mail and del
00 00 * /bin/bash /server/scripts/web01.sh &>/dev/null

使用md5sum时存在的不足
问题:
如果客户端使用rsync命令在服务端创建的md5sum指纹文件,会存在服务端路径为/backup/web01,而客户端创建指纹的路径是/backup,所以不能验证
解决:
在客户端创建一个目录,也就是/backup/web01.直接将web01这个目录推送到服务端,所以服务端的路径和客户端的相同,指纹可以使用

客户端:
vim /server/scripts/web01.backup.sh

#!/bin/bash

#backup html and conf
tar zchf /backup/web01/html.date +%F_%w -d ‘-1day‘.tar.gz /var/www/html/ &>/dev/null
tar zchf /backup/web01/conf.date +%F_%w -d ‘-1day‘.tar.gz /etc/rc.local /etc/hosts /var/spool/cron/ &>/dev/null

#make md5
find /backup/web01 -name ‘*.tar.gz‘ |xargs md5sum >/backup/web01/check.txt

#rsync push backup
rsync -az /backup/web01 [email protected]::backup --password-file=/etc/rsync.password

#del 7 days ago
find /backup/web01 -name ‘*.tar.gz‘ -mtime +7 -type f |xargs rm -f

服务端:
vim /server/scripts/web01.sh

#!/bin/bash

#check and send mail
md5sum -c /backup/web01/check.txt >/backup/web01/result.log
mail -s "result" [email protected] </backup/web01/result.log

#del 180 days ago and save sat
find /backup/web01 -name ‘.tar.gz‘ ! -name ‘_6.tar.gz‘ -mtime +180 |xargs rm -f

原文地址:http://blog.51cto.com/12928749/2064118

时间: 2024-12-07 12:51:53

rsync实现全网备份案例的相关文章

Rsync 网站全网备份

某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据做备份,这样Web服务器数据丢失可以进行恢复.要求如下: 每天晚上00点整在Web服务器A上打包备份系统配置文件.网站程序目录及访问日志并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器B上). 问题一.实现把Web服务器A数据备份到服务器B. 具体要求如下: 1)Web服务器A和备份服务器B的备份目录必须都为/backup. 2)系统配置文件包括但

最最基础综合架构搭建部署过程——rsync与全网备份

1.rsync服务1.1备份服务的作用将数据服务器里的数据统一存储备份到一台服务器1.2.rsync--服务的安装部署rsync的部署过程为服务端和客户端1.2.1.服务端部署第一个历程:安装软件程序Yum install -y rsync第二个历程:编写配置文件vim /etc/rsyncd.conf第三个历程:创建虚拟用户信息Useradd -M -s /sbin/nologin rsync第四个历程:创建密码文件echo "rsync_backup:oldboy123" >

全网备份案例

第1章 企业案例 rsync上机实战考试题: 某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份.要求如下: 每天晚上00点整在Web服务器A(web01 )上打包备份网站程序目录并通过rsync命令推送到服务器B(backup)上备份保留 (备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上). 具体要求如下: 1)Web服务器A和备份服务器B的备份目录必须都为/backup. 2)Web服务器

网站集群架构实战(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken>下面是项目的一些简单介绍. WEB集群项目简介 随着网站访问量的激增,势必会导致网站的负载增加,现需求搭载一套高性能,高负载,高可用的网站集群架构以保障网站的持续.高效.安全.稳定的运行. 针对以上需求,我们采用了如下的技术: 使用负载均衡技术来实现网站请求的调度分发,减小后端服务器

rsync存储服务器-全网备份

一.rsync功能介绍: 复制 (同步)的工具 全量及增量 本地和远程 Rsync英文全称为Remotesynchronization 本地复制cp(全量备份),rsunc也有此功能(增量) 远程复制scp(全量备份),rsync也有此功能(增量) 删除工具rm,rsync也有此功能 二. Rsync的特性 支持拷贝特殊文件如链接文件,设备等 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 可以做到保持原文件或目录的权限.时间.软硬链接.属主.组等所有属性均不改变  - p

搭建中小规模集群之rsync数据同步备份

NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快速的.多功能的.可实现全量即增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix.linux.windows等多种操作系统平台. Rsync简介 Rsync英文全称Remote synchronization.从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快

项目-第六次全网备份上机考试

全网备份案例 备份全网服务器数据生产架构方案案例模型 企业案例:rsync上机实战考试题: 某公司里有二台Web服务器为web01和web02,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份.要求如下: 每天晚上00点整在Web服务器web01和web02上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留 (备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上). 具体要求如下: 1)Web服务器web01

全网备份项目解决方案实例

大规模集群全网备份案例 项目要求:1.需要备份的文件或目录有(原则上,只要是运维人员写入或更改的数据,都需要备份):/var/spool/cron/root /etc./rc.local /etc/sysconfig/iptables /var/www/html /app/logs2.为了规范化,每台web服务器进行本地备份时都本分到/backup目录下3.每台web服务器进行本地备份时,都备份到backup下以本机IP地址命名的目录中4.打的tar包文件名中需要包含执行当天的日期5.统一备份数

rsync+inotify实时备份加nfs挂载实战

因公司近期业务要求需要搭建一套服务具体要求如下图: 1.基本备份要求 已知 3 台服务器主机名分别为A(web01).B(backup) .C(nfs01) 要求: 每天晚上 0 00 点整在 b Web 服务器 A A 上 打包 备份系统配置文件.网站程序目录及访 问日志并通过 c rsync 命令推送备份服务器 B B 上备份保留(备份思路可以是先在本地按日期 打包,然后再推到备份服务器 B B 上). 具体要求如下: 1)Web 服务器 A 和备份服务器 B 的备份目录必须都为/backu