第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 实现项目思路
所有服务器备份目录都为/backup
使用命令mkdir -p /backup
新建一个backup目录要备份的系统配置文件包括但不限于:
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
绝对路径压缩数据
Web服务器站点目录假定为(/var/html/www)。
mkdir -p /var/html/www/
tar zcvPhf /backup/web_info_backup_$(date +%F_%A).tar.gz /var/html/www/
Web服务器访问日志路径假定为(/app/logs)
mkdir -p /app/logs
ar zcvPhf /backup/web_log_backup_$(date +%F_%A).tar.gz /app/logs/
Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
find /backup -type f -name "*.tar.gz" -mtime +7 -delete
备份服务器上,保留6个月之内数据,同时保留6个月之前每周一的所有数据副本
find /backup -type f -name "*.tar.gz" -mtime +180 ! -iname "*_monday.tar.gz" -delete
备份服务器上,要按照备份数据服务器的内网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/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中。
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" 17778058507@163.com </tmp/check_data.txt
第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/ rsync_backup@172.16.1.41::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" 17778058507@163.com </tmp/check_data.txt
#03\. delete 180 day ago
find /backup -type f -name "*.tar.gz" -mtime +180 ! -iname "*_monday.tar.gz" -delete