备份服务器实战

 

 

1、基本备份要求

已知3台服务器主机分别web01backup nfs01,主机信息见下表

服务器说明

外网IP(NAT)

内网IP(NAT)

主机名称

nginx web服务器

10.0.0.7/24

172.16.1.7/24

web01

NFS存储服务器

10.0.0.31/24

172.16.1.31/24

nfs01

rsync备份服务器

10.0.0.41/24

172.16.1.41/24

backup

要求每天晚上00点整在Web服务器上打包备份系统配置文件、网站程序目录及访问日志并通过rsync命令推送备份服务器backup上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器backup上)NFS存储服务器同Web服务器,实际工作中就是全部的服务器

具体要求如下:

1)所有服务器的备份目录必须都为/backup mkdir –p /backup

[root@backup ~]# mkdir -p  /backup/$(hostname -i)   #创建备份目录在backup上

2)备份的系统配置文件包括但不限于:

a.定时任务服务的配置文件(/var/spool/cron/root)(适合webnfs服务器)

b.开机自启动的配置文件(/etc/rc.local)(适合webnfs服务器)

c.日常脚本的目录 (/server/scripts)

d.防火墙iptables的配置文件(/etc/sysconfig/iptables)

 

[root@nfs01 backup]# mkdir  -p /server/scripts
[root@nfs01 backup]# mkdir -p /app/logs

  

[root@web01 scripts]# tar -zchvf /backup/172.16.1.7/backup.`date +%F_星期%w --date="-1 day"`.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts/ /etc/sysconfig/iptables-config /app/logs
[root@web01 /]# md5sum /backup/172.16.1.7/backup.`date +%F_星期%w --date="-1 day"`.tar.gz >/backup/172.16.1.7/ginfer.txt
[root@nfs01 tmp]# mkdir -p /var/html/www
[root@nfs01 /]#   tar -zcvhf /backup/172.16.1.7/html.`date +%F_星期%w --date="-1 day"`.tar.gz /var/html/www/ 
[root@web01 /]# md5sum /backup/172.16.1.7/html.`date +%F_星期%w --date="-1 day"`.tar.gz >/backup/172.16.1.7/html_finger.txt

 

e.自己思考下还有什么需要备份呢?

3)Web服务器站点目录假定为(/var/html/www)

4)Web服务器A访问日志路径假定为(/app/logs

5)Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)

[root@web01 backup]# find /backup/  -type f  -mtime +7    -delete 

 

6)备份服务器上,保留每周一的所有数据副本,其它要保留6个月的数据副本。

  6个月以内  周一 ~ 周日

 

  6个月以前  周一 ~ 周日  周一保留  周二~周日 删除

[root@web01 backup]# find  /backup/ -not  -name  *_星期1.tar.gz  -mtime +180   | xargs rm -rf 

7)备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。

 

[root@web01 etc]# chmod 600 /etc/rsync.password   #修改web密码文件属性
[root@web01
/]# rsync -az /backup/ rsync_backup@10.0.0.41::backup/$(hostname -i) --password-file=/etc/rsync.password

 

 

 

8*需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中(发邮件技巧见VIP群资料)。

 备份服务器效验:

[root@web01 backup]# find /backup/ -name *.txt -mmin  -15  | xargs md5sum -c > /tmp/finger.txt
[root@web01 backup]# mail -s "备份服务器效验结果:" 1354586675@qq.com < /tmp/finger.txt mail -s "备份服务器效验结果:" 1354586675@qq.com < /tmp/finger.txt 
#mail postfix.service 配置
[root@backup backup]# yum install mailx -y [root@backup backup]# systemctl start postfix.service [root@backup backup]# vim /etc/mail.rc 内容尾部添加: set from=1354586675@qq.com set smtp=smtp.qq.com set smtp-auth-user=*@qq.com #邮箱地址 set smtp-auth-password=******* #qq邮箱授权码,需要验证 set smtp-auth=login

root@web01 backup]# echo "test" | mail -s "test_hello" qq@qq.com #格式

 客户端代码:

#!/bin/bash
#客户端代码
#创建备份目录
IP_dir=$(hostname -i)
mkdir -p  /backup/$IP_dir

#创建需要的文件目录
mkdir  -p /server/scripts
mkdir -p /app/logs
tar -zchf /backup/$IP_dir/backup.`date +%F_星期%w --date="-1 day"`.tar.gz /var/spool/cron/root  /etc/rc.local /server/scripts/ /etc/sysconfig/iptables-config  &> /dev/null


md5sum /backup/$IP_dir/backup.`date +%F_星期%w --date="-1 day"`.tar.gz >/backup/172.16.1.7/check_backup_ginfer.txt &> /dev/null

mkdir -p /var/html/www

tar -zchf /backup/$IP_dir/html.`date +%F_星期%w --date="-1 day"`.tar.gz  /var/html/www/ &> /dev/null

md5sum /backup/$IP_dir/html.`date +%F_星期%w --date="-1 day"`.tar.gz >/backup/$IP_dir/check_html_finger.txt &> /dev/null

find /backup/  -type f  -mtime +7    -delete
#传输给backup服务
rsync -az /backup/$IP_dir/ rsync_backup@10.0.0.41::backup/$(hostname -i) --password-file=/etc/rsync.password
                                                                                                         

 备份服务器代码:

#!/bin/bash
#效验包是否正确
find /backup/ -name *.txt  -mtime +1  | xargs md5sum -c > /tmp/finger.txt     
mail -s "备份服务器效验结果:" 1354586675@qq.com < /tmp/finger.txt

find  /backup/ -not  -name  *_星期1.tar.gz  -mtime +180   | xargs rm -rf
#!/bin/bash
#效验包是否正确
find /backup/ -name *.txt  | xargs md5sum -c > /tmp/finger.txt      #效验结果输出到/etc/finger.txt中

mail -s "备份服务器效验结果:" ********@qq.com < /tmp/finger.txt     #将结果发送到邮箱中

find  /backup/ -not  -name  *_星期1.tar.gz  -mtime +180   | xargs rm -rf   #查找备份服务器中180以外的文件然后删除

2、本项目整个备份逻辑结构如下图: 

特别说明:

1)工作中领导很可能不会告诉你如何去做,只会提需求,例如:小崔,我们集群的数据器很重要,请你做一个方案把所有数据备份好(定期的备份)。

2)逻辑架构图更不可能是领导给你画,而是你理解了领导的意思,然后自己想出备份的方案,最后,在实施前你做的一个图纸而已。

3*需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中。

4真实工作中除了异备份,可能还会需要异地备份,这个地方请大家思考如何异地备份。

posted @ 2019-10-24 09:17  kerwin-  阅读(283)  评论(0编辑  收藏  举报