全网备份数据方案操作手册v2.0

网友投稿 822 2022-10-21

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

全网备份数据方案操作手册v2.0

全网备份数据方案

操作手册

系统运维操作手册

(v2.0)

2020年9月30日

作者 龍龍

南京迈特望科技股份有限公司

全网数据备份方案

1 项目备份环境

已知3台服务器主机名分别为web01、backup、nfs01,主机信息见下表:

服务器说明

外网IP

内网IP

主机名称

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

2 项目备份要求

具体要求如下:(1)所有服务器的备份目录必须都为/backup。(2)要备份的系统配置文件包括但不限于:    a.定时任务服务的配置文件(/var/spool/cron/root)(适合web和nfs服务器)。    b.开机自启动的配置文件(/etc/rc.local)(适合web和nfs服务器)。    c.日常脚本的目录 (/server/scripts)(适合web和nfs服务器)。    d.防火墙iptables或firewalld配置文件(/etc/sysconfig/iptables或 etc/firewalld)(适合web和nfs服务器)。    e.自己思考下还有什么需要备份呢?(3)Web服务器站点目录假定为(/var/html/www)(适合web服务器)。(4)Web服务器A访问日志路径假定为(/app/logs)(适合web服务器)。(5)Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)(6)备份服务器上,保留最近6个月的备份数据,同时保留6个月之前每周一的所有数据(7)备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。(8)需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中(9)搭建NFS存储实现web服务器网站图片、附件共享(10)NFS存储数据实时备份(1)每天晚上00点整在web服务器上打包备份系统配置文件、网站程序目录及访问日志并通过rsync命令推送备份服务器backup上备份保留。(2)每天晚上00点整在nfs服务器上打包备份系统配置文件,并通过rsync命令推送备份服务器backup上备份保留。思路:备份思路可以是先在本地按日期打包,然后再推到备份服务器backup上,备份完成后要进入解压文件,查看一下是否有内容,nfs存储服务器同web服务器,实际工作中就是全部的服务器。

3 项目备份逻辑架构图

4 项目实施配置

(1)首先三台服务器的备份目录都要为backup

mkdir backup        #web01,nfs01,backup服务器都要创建backup

(2)要备份的系统配置文件包括但不限于    a.定时任务服务的配置文件(/var/spool/cron/root)(适合web和nfs服务器)。    b.开机自启动的配置文件(/etc/rc.local)(适合web和nfs服务器)。    c.日常脚本的目录 (/server/scripts)(适合web和nfs服务器)。    d.防火墙iptables或firewalld配置文件(/etc/sysconfig/iptables或 etc/firewalld)(适合web和nfs服务器)。(3)Web服务器站点目录假定为(/var/html/www)(适合web服务器)。

[root@web01 ~]#    mkdir var/html/www -p

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

[root@web01 ~]#    mkdir app/logs -p

(5)Web服务器保留打包后的7天的备份数据。

find backup -type f -mtime +7 -name "*.tar.gz"|xargs rm 2>/dev/null

2>/dev/null:如果没有7天之前的数据会产生错误报告信息,因此将错误信息追加到/dev/null,不会产生错误信息。

(6)备份服务器上,保留最近6个月的备份数据,同时保留6个月之前每周一的所有数据。

find backup -type f -mtime +180 -name "*.tar.gz"|xargs rm

#    方法一:在文件名称中显示星期信息

#    data+%A/date +%w

find backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*星期1.tar.gz"|xargs rm 2>/dev/null

#    方法二:将周一数据单独保存

#    今天是周一

mkdir backup/week01

rsync -avz backup/week01 rsync_backup@172.16.1.41::backup/week01/

find backup/ -path "/backup/week01" -prune -o -type f -name "*.tar.gz" -print |xargs rm

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

[root@backup ~]#    mkdir backup/172.16.1.7 172.16.1.31

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

rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

md5sum /backup/172.16.1.31/system_backup_2019-07-18_星期4.tar.gz >/backup/172.16.1.31/finger.txt

####    md5值追加给finger.txt(指纹文件)

md5sum -c finger.txt        ### 自动对比md5值

vim etc/mail.rc

set from=1396344xxxx@163.com smtp=smtp.163.com

set smtp-auth-user=1396344xxxx@163.com smtp-auth-password=ichn123456 smtp-auth=login

#将这两条命令添加到最后一行

systemctl restart postfix.service    #    重启邮件

echo "linux ichn62"|mail -s "test_mail" 9720xxxx@qq.com    #测试邮件是否能发送

mail -s "test_mail" 7880xxxx@qq.com << span="">/etc/hosts    # 测试邮件是否能发送

整理以上命令编写脚本

mkdir server/scripts/    #创建脚本目录

[root@web01 scripts]#vi system_backup.sh

#!/bin/bash

Dir_info="/backup"

IP_info="$(hostname -i)"

# 创建本地备份目录

mkdir -p $Dir_info/$IP_info

# 创建本地备份压缩文件,备份站点目录和日志目录

cd /

tar zchf $Dir_info/$IP_info/system_backup_$(date +%F_星期%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables

tar zchf $Dir_info/$IP_info/web_backup_$(date +%F_星期%w).tar.gz ./var/html/www/

tar zchf $Dir_info/$IP_info/web_log_$(date +%F_星期%w).tar.gz ./app/logs/

# 生成数据指纹信息

find $Dir_info/$IP_info/ -type f  -name "*.tar.gz" -mtime -1|xargs md5sum >$Dir_info/$IP_info/finger.txt

# 传输备份数据

rsync -az $Dir_info/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

# 删除七天以前备份数据

find $Dir_info -type f -mtime +7 -name "*.tar.gz"|xargs rm 2>/dev/null

mkdir /server/scripts/    #创建脚本目录

[root@nfs01 scripts]#vi system_backup.sh

#!/bin/bash

Dir_info="/backup"

IP_info="$(hostname -i)"

# 创建本地备份目录

mkdir -p $Dir_info/$IP_info

# 创建本地备份压缩文件

cd /

tar zchf $Dir_info/$IP_info/system_backup_$(date +%F_星期%w).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables

# 生成数据指纹信息

find $Dir_info/$IP_info/ -type f  -name "*.tar.gz" -mtime -1|xargs md5sum >$Dir_info/$IP_info/finger.txt

# 传输备份数据

rsync -az $Dir_info/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

# 删除七天以前备份数据

find $Dir_info -type f -mtime +7 -name "*.tar.gz"|xargs rm 2>/dev/null

mkdir /server/scripts/    #创建脚本目录

[root@backup scripts]#vi backup_check.sh

[root@backup scripts]#cat backup_check.sh

#!/bin/bash

#验证数据完整性

find /backup/ -type f -name "finger.txt"|xargs md5sum -c &>/tmp/check_info.txt

#发送邮件信息通知

mail -s "backup_check_info" 1138108293@qq.com

#删除6个月之前数据

find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*星期1.tar.gz"|xargs rm 2>/dev/null

编写定时任务WEB服务端:

[root@web01 /]#crontab -e

00 00 * * * /bin/sh /server/scripts/system_backup.sh &>/dev/null

NFS客户端:

[root@nfs01 /]#crontab -e

00 00 * * * /bin/sh /server/scripts/system_backup.sh &>/dev/null

backup服务端:

[root@backup /]#crontab -e

0 6 * * * /bin/sh /server/scripts/backup_check.sh &>/dev/null

上一篇:维克拉马辛哈当选斯里兰卡总统,曾六度出任总理
下一篇:四维图新发布交通感知“一张图”,助力新疆智慧交通建设
相关文章

 发表评论

暂时没有评论,来抢沙发吧~