day35~综合架构-全网备份服务

  实现备份服务的上传、校验、以及服务端e-mail的推送

全网备份项目部署说明 

1) 项目需求分析文档 a 项目完成可以解决什么问题 b 简单编写项目实施方案 

2) 项目实施阶段说明 a 项目开始完成阶段 

项目完成任务信息

 1. 所有服务器的备份目录必须都为/backup web01 nfs01 backup mkdir -p /backup ?

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

a)定时任务服务的配置文件 (/var/spool/cron/root) (适合web和nfs服务器)。

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

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

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

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

a 如何进行数据完整性验证

  验证文件指纹信息

1) 在本地生成指纹文件 (指纹编码  文件信息)

2) 将数据和指纹文件传输

3) 远程主机根据接收到的文件再次生成指纹信息

4) 用新的指纹信息和老的指纹信息做比对

5) 只要一致就是完整数据 如果不一致就是有损坏数据

生成指纹文件

md5sum 文件信息 > finger.txt

验证指纹文件

md5sum -c finger >/tmp/check_figer.txt

b 如何让系统发送邮件信息

foxmail --> 配置    --> QQ企业邮箱 --> 其他人发送邮件

linux  --> 配置(账号 密码 授权码) --> QQ邮箱    --> 其他人发送邮件

第一个历程: 配置QQ邮箱

IMAP服务开启

邮箱授权码

邮箱服务地址: QQ: smtp.qq.com  163: smtp.163.com 

第二个历程: 编写linux邮件服务配置文件

vim /etc/mail.rc

set [email protected]

set smtp=smtp.163.com

set [email protected]

set smtp-auth-password=oldboy123

set smtp-auth=login

systemctl


一、在服务端的环境配置      

第一步:在服务端安装rsync的软件包

yum  install  -y  rsync

第二步:设置环境变量

uid = rsync       #属主用户信息

gid = rsync      #属组用户信息

port = 873       #端口号

fake super = yes            #伪装超级管理员

use chroot = no             #使用uix操作系统

max connections = 200     #最大连接数

timeout = 300                  #超过300秒未连接自动断开

pid file = /var/run/rsyncd.pid     #文件存放目录

lock file = /var/run/rsync.lock     

log file = /var/log/rsyncd.log

ignore errors                  #忽略错误提示

read only = false            #只读false文件

list = false                      #不显示模块信息

hosts allow = 172.16.1.0/24     #允许172.16.1.0网段连接(白名单)

hosts deny = 0.0.0.0/32          #拒绝0.0.0.0网段连接(黑名单)

auth users = rsync_backup      #用户信息为rsync_backup

secrets file = /etc/rsync.password      #设置一个密码信息文件

[backup]                                     #存储模块名称

comment = "backup dir by oldboy"       #注释信息

path = /backup             #存储路径在/backup下

第三步:创建一个虚拟用户

useradd  -M  -s   /bin/nologin   rsync

第四步:设置一个密码文件(其目的将密码信息存储到该文件中)

echo     zgl123   >/etc/rsync.password

第五步:更改密码文件的权限(让其用户无法查看该文件内容)

chmod   600    /etc/rsync.password

第六步:设置储存文件属主  属组信息(要于配置文件中的信息一致)

chown rsync.rsync  /backup

第七步:重启rsync服务

systemctl  restart rsyncd


设计要求:

nfs01客户端的环境配置

1、设置一个备份目录(用来存储本地备份文件)

mkdir  –p /backup/172.16.1.31_nfs01

2、临时创建一个压缩包存储文件(172.16.1.31文件用来备份存储服务器的内容)

mkdir  -p /backup/172.16.1.31

3、将指定文件进行打包放入/backup/172.16.1.31/目录中

tar  zchPf   /backup/172.16.1.31/system_date_$(date +%F星期%w).tar.gz  /var/spool/cron/root   /etc/rc.local     /server/scripts

4、进行文件的校验

①  创建一个指纹校验的文件(存放指纹信息)

mkdir  /backup/172.16.1.31/finger.tst

②  将指纹校验消息的结果追加到上文件中

cat  /backup/172.16.1.31/finger.txt

③ 查找文件中的信息的

find /backup/172.16.1.31-type f -mmin -15|xargs  md5sum

 >/backup/172.16.1.31/finger.txt  (追加到finger.txt文件中)

5、将文件信息传输到备份服务器上

rsync -az  /backup/172.16.1.31/ [email protected]::backup/172.16.1.31/

--password-file=/etc/rsync.password     (免交互)

6、查找7天以前的文件删除

find  /backup –type f –mtime  +7 -delete


总结将以上内容编写一个脚本

[root@nfs01 backup] # vim /server/scripts/nfs01.sh

#!/bin/bash

#01.设置变量信息

IP=$(hostname -i)

#02设置备份目录

mkdir -p /backup/$IP/

#03.备份数据信息(压缩备份)

tar zchPf /backup/$IP/system_date_$(date +%F星期%w).tar.gz /var/spo

oot /etc/rc.local /server/scripts

#04.生成指纹文件信息(此方式是增量备份)

find /backup/$IP -type f -mmin -15|xargs md5sum  >/backup/$IP/finge

#05.将数据文件进行备份传输

rsync -az /backup/$IP/ [email protected]::backup/$IP/ --pass

=/etc/rsync.password

#06.删除7天以前备份数据信息

find /backup -type f -mtime +7 -delete

定时任务编写

crontab -e

0  0  *  *  *     /usr/bin/sh   /servies/server/scripts/nfs01.sh



web01客户端环境配置

#!/bin/bash

#01.设置变量信息

IP=$(hostname -i)

#02设置备份目录

mkdir -p /backup/$IP/

#03.备份数据信息(压缩备份)

tar zchPf /backup/$IP/system_date_$(date +%F星期%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts

mkdir -p /var/html/www

tar zchPf /backup/$IP/web01_date_$(date +%F星期%w).tar.gz  /var/html/www

mkdir -p /app/logs

tar zchPf /backup/$IP/web01_log_$(date +%F星期%w).tar.gz  /app/logs

#04.生成指纹文件信息

find /backup/$IP -type f -mmin -15 -name "*.tar.gz"|xargs md5sum >/backup/$IP/finger.txt

编写定时任务

crontab  -e

0  0  *  *  *     /usr/bin/sh   /servies/server/scripts/web01.sh

服务端环境配置

1、验证数据备份数据完整性并将输出结果放在/tmp/check_finger.txt文件里

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

2、将指纹文件验证结果发送给运维人员

前提是编辑一个邮件配置文件

vim /etc/mail.rc

set  [email protected]

set  smtp=smtp.qq.com

set  [email protected]

set  smtp-auth-password=qmdeufranwufiecd

set  smtp-auth=login

将指纹验证的消息结果通过邮件信息发送给1347856467

mail -s  "$(date +%F) data check" [email protected]

总结以上命令编写一个脚本

#! /bin/bash

#01:验证备份数据完整性

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


#02:将指纹文件验证结果发送给运维人员

mail -s   "$(date +%F) data check" [email protected]


#03:删除历史备份数据(180天前)除星期一以外的文件删除

find /backup -type   f -mtime +180 ! -name "*星期1.tar.gz" -delete

编写定时任务

0  7  *  *  *     /usr/bin/sh   /servies/server/scripts/nfs01.sh



你可能感兴趣的:(day35~综合架构-全网备份服务)