全网备份项目

第1章 工作中领导颁布任务规划

工作中肯定要涉及到备份操作 例如nfs服务器的配置文件 web服务器的app文件 内部人员的脚本等 这时就要做好备份 一旦丢失可快速找回 以免麻烦

1.1 工作中交代任务注意事项

(1) 对工作任务进行确认 (记不住可用 笔记,录音,记录领导需求)

(2) 根据需求编写文档资料 (文档中写入 部署步骤 部署计划 时间规划 (时间多写点以免真完不成就尴尬了) 人员规划 )

(3) 和领导开会 并召集相关人员到场 确认责任划分

(4) 根据规划完成任务 在这期间做好阶段汇报 (周汇报 月汇报) 可利用表格文档等和领导汇报

(5) 任务完成后 做好项目的文档总结 项目总结会议(说明项目功能等信息) 人员培训等

第2章 全网备份需求和完成阶段

2.1 模拟需求

全网备份

具体要求如下:

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

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

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

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

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

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

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

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

2.2 实现项目思路

  1. 所有服务器备份目录都为/backup
    使用命令 mkdir -p /backup 新建一个backup目录

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

tar zcvhPf /backup/system_backup_$(date +%F_%A).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables 绝对路径压缩数据

  1. Web服务器站点目录假定为(/var/html/www)。
    mkdir -p /var/html/www/
    tar zcvPhf /backup/web_info_backup_$(date +%F_%A).tar.gz /var/html/www/

  2. Web服务器访问日志路径假定为(/app/logs)
    mkdir -p /app/logs
    ar zcvPhf /backup/web_log_backup_$(date +%F_%A).tar.gz /app/logs/

  3. Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
    find /backup -type f -name "*.tar.gz" -mtime +7 -delete

  4. 备份服务器上,保留6个月之内数据,同时保留6个月之前每周一的所有数据副本
    find /backup -type f -name "*.tar.gz" -mtime +180 ! -iname "*_monday.tar.gz" -delete

  5. 备份服务器上,要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。
    tar zcvhf /backup/172.16.1.31/system_backup_$(date +%F_%A).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables
    rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password

  6. 需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中。
    a 验证数据传输完整性
    第一个步骤: 客户端生成文件指纹信息
    生成指纹信息
    find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/172.16.1.31/finger.txt
    第二个步骤: 服务端对文件指纹信息进行对比
    find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_data.txt
    b 对验证结果进行邮件告知运维人员
    mail -s "backup_data_notify" [email protected]

第3章 综合起来写成脚本

3.1 全网备份脚本

3.1.1 客户端(推送数据端)脚本

[root@nfs01 backup]# cat /server/scripts/backup.sh
 #!/bin/bash
 Backup_Dir="/backup"
 Backup_IP="$(hostname -i)"

 # 00\. create dir info
 mkdir $Backup_Dir/$Backup_IP -p
 mkdir -p /server/scripts
 touch /etc/sysconfig/iptables

 # 01\. compress data
 tar zchPf $Backup_Dir/$Backup_IP/system_backup_$(date +%F_%A).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables

 # 02\. create finger file
 find $Backup_Dir/ -type f -name "*.tar.gz"|xargs md5sum >$Backup_Dir/$Backup_IP/finger.txt

 # 03\. push date info
 rsync -az $Backup_Dir/ [email protected]::backup --password-file=/etc/rsync.password

 # 04\. delete 7 day ago
find $Backup_Dir/ -type f -name "*.tar.gz" -mtime +7 -delete

3.1.2 备份服务服务端脚本:

 #!/bin/bash

 #01\. check data info
 find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check_data.txt

 #02\. sent notify mail
 mail -s "backup_data_notify" [email protected] 

你可能感兴趣的:(全网备份项目)