一、项目背景
某企业有一台Web服务器,里面储存有重要数据,为防止因设备损坏导致的数据丢失,现在需要为数据制作备份,以在数据丢失后恢复数据。
1、项目要求
-
每天00点整在Web服务器上按日期打包备份系统配置文件、网站程序目录及访问日志文件
-
通过rsync命令推送到备份服务器上保存
-
备份服务器定时清除旧记录
-
搭建邮件告警平台
2、备份需求
-
所有服务器的备份目录必须都为/backup。
-
要备份的系统配置文件包括但不限于:
-
定时任务服务的配置文件(/var/spool/cron/root) (适合Web和NFS服务器)。
-
开机自启动的配置文件(/etc/rc.local) (适合Web和NFS服务器)。
-
日常脚本的目录 (/server/scripts)。
-
-
Web服务器要求
-
Web站点目录假定为/var/html/www,如果没有,可以先模拟创建。
-
Web服务器访问日志路径假定为/app/logs,如果没有,可以先模拟创建。
-
Web服务器本地保留打包后的7天备份数据即可(本地留存不能多于7天,因为数据太多硬盘会满)。
-
-
备份服务器要求
-
保留最近7天所有备份数据,保留6个月内每周一的所有数据副本。
-
要按照备份数据服务器内网IP为目录名称,备份的文件按照时间、名称为文件名称。
-
需要确保备份的数据尽量完整准确,在备份服务器上对备份的数据是否完整进行检查。
-
备份服务器每天早晨8:00把备份成功或失败结果信息发送到系统管理员邮箱里。
-
3、设备说明
all server | /backup | 备份目录 | 统一服务器本地备份目录,便于管理 |
all server | /var/spool/cron/root | 定时任务服务配置文件 | 系统配置文件 |
all server | /etc/rc.local | 开机自启动配置文件 | 系统配置文件 |
all server | /server/scripts | 日常脚本目录 | 统一服务器本地脚本目录,便于管理 |
Web server | /var/www/html | web服务器站点目录 | mkdir -p /var/www/html |
Web server | /app/logs | web服务器访问日志路径 | mkdir -p /app/logs |
web01 | 192.168.86.200 |
cpu:1颗2核 内 存:2GB HDD:20GB 网 络:NAT |
VmWare17 Centos7.9 nginx1.20 rsync3.1.2 |
nfs01 | 192.168.86.201 |
cpu:1颗2核 内 存:2GB HDD:20GB 网 络:NAT |
VmWare17 Centos7.9 nfs rpcbind rsync3.1.2 |
backup | 192.168.86.202 |
cpu:1颗2核 内 存:2GB HDD:20GB 网 络:NAT |
VmWare17 Centos7.9 mailx12.5 rsync3.1.2 |
主机使用Centos7.9操作系统,下载链接如下:https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso
二、项目环境搭建
1、web01服务器环境搭建
创建虚拟机与安装操作系统步骤省略
前期配置
nmtui //配置静态ip
systemctl stop firewalld //关闭防火墙 systemctl disable firewalld //禁止防火墙开机启动 vi /etc/selinux/config //关闭selinux hostnamectl set-hostname web01 //修改主机名为web01 reboot //重启
连接Xshell
配置yum源并安装软件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo //安装阿里yum源
yum clean all //清理 yum 缓存
yum makecache //生成新的 yum 缓存
yum install vim tree tar net-tools rsync nfs-utils wget nginx -y //安装所需软件
部署示例网站
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo //下载阿里云 EPEL 源配置文件
yum makecache //生成新的 yum 缓存 mkdir -p /www/sczl //创建新目录 cd /www/sczl //转入sczl目录 使用xftp将web源文件上传至/www/sczl
vim /etc/nginx/nginx.conf //修改nginx配置文件
systemctl start nginx //开启nginx服务
systemctl enable nginx //开机自启动nginx服务
于浏览器中输入web01ip 192.168.86.200,结果如下
成功搭建web01服务器
2、nfs01服务器环境搭建
创建虚拟机与安装操作系统步骤省略
前期配置
nmtui //配置静态ip
systemctl stop firewalld //关闭防火墙 systemctl disable firewalld //禁止防火墙开机启动 vi /etc/selinux/config //关闭selinux hostnamectl set-hostname nfs01 //修改主机名为web01 reboot //重启
连接Xshell
配置yum源并安装软件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo //安装阿里yum源
yum clean all //清理 yum 缓存
yum makecache //生成新的 yum 缓存
yum install vim tree tar net-tools rsync rpcbind nfs-utils -y //安装所需软件
部署共享储存
mkdir /nfsfile //创建 NFS 共享目录 echo "welcome to www.openlab.com" > /nfsfile/readme //写入测试文件 chmod -Rf 777 /nfsfile //设置开放权限 vim /etc/exports //编辑nfs配置文件
systemctl enable–now rpcbind //启动并开机自启rpcbind服务 systemctl enable–now nfs-server //启动并开机自启nfs服务
于web01进行操作
showmount -e 192.168.86.201 //检查 NFS 服务端的共享列表
mkdir /web_nfs //在客户端创建本地挂载点
mount -t nfs //挂载nfs系统
ls /web-nfs //查看目录内容
vim /etc/fstab //配置fstab文件实现永久挂载
mount -a //加载所有挂载配置
df -h //显示所有已挂载文件
成功搭建nfs01服务器
3、backup服务器环境搭建
创建虚拟机与安装操作系统步骤省略
前期配置
nmtui //配置静态ip
systemctl stop firewalld //关闭防火墙 systemctl disable firewalld //禁止防火墙开机启动 vi /etc/selinux/config //关闭selinux hostnamectl set-hostname backup //修改主机名为web01 reboot //重启
连接Xshell
配置yum源并安装软件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo //安装阿里yum源
yum clean all //清理 yum 缓存
yum makecache //生成新的 yum 缓存
yum install vim tree tar net-tools rsync mailx -y //安装所需软件
修改rsync配置文件
vim /etc/rsyncd.conf //修改rsync 配置文件如下
useradd -M -s /sbin/nologin rsync //创建专用无登录权限的 rsync 用户 mkdir /backup //创建备份目录 chown -R rsync /backup //分配权限 systemctl enable –now rsyncd //启动并开机自启rsync服务 ps -ef | grep rsync //验证服务是否运行 echo "rsync:rsync123" > /etc/rsync.password //生成密码文件 chmod 600 /etc/rsync.password //保护密码文件权限
成功搭建backup服务器
三、配置备份脚本
1、配置web01服务器本地备份脚本
tree /var/log/nginx //查看所要备份的文件
tree /www //查看所要备份的文件
mkdir /backup //创建本地备份目录
mkdir -p /server/scripts //创建本地备份目录
vim /server/scripts/backup.sh //编写备份脚本
vim /etc/rsync.password //编写密码认证文件
chmod 600 /etc/rsync.password //设置权限
测试
于web01服务器中输入bash /server/scripts/backup.sh //执行脚本
于backup服务器中输入ls /backup/192.168.86.200/ //查看备份文件
可以看到成功备份文件
2、配置nfs01服务器本地备份脚本
tree /var/log/nginx //查看所要备份的文件
tree /www //查看所要备份的文件
mkdir /backup //创建本地备份目录
mkdir -p /server/scripts //创建本地备份目录
vim /server/scripts/backup.sh //编写备份脚本
vim /etc/rsync.password //编写密码认证文件
chmod 600 /etc/rsync.password //设置权限
测试
于nfs01服务器中输入bash /server/scripts/backup.sh //执行脚本
于backup服务器中输入ls /backup/192.168.86.201/ //查看备份文件
可以看到成功备份文件
四、配置定时任务
1、配置web01服务器定时备份任务
crontab -e //设置定时备份任务
2、配置nfs01服务器定时备份任务
crontab -e //设置定时备份任务
3、配置backup服务器自动删除脚本
mkdir -p /server/scripts //创建脚本目录
vim /server/scripts/del_bak_data.sh //创建备份清理脚本
crontab -e //设置定时备份任务
五、数据传输完整性验证和监控警告
1、backup服务器数据传输完整性验证
vim send_mail.sh //编写数据传输完整性验证脚本
2、配置邮件告警
mkdir -p /root/.certs
cd /root/.certs
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt //下载 QQ 邮箱 SMTP 证书
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt //导入证书
vim /etc/mail.rc //配置系统邮件客户端
echo "testmail" | mail -s "testmail" 2352471241@qq.com //测试邮件发送
bash /server/scripts/send_mail.sh //使用脚本发送
至此项目结束
评论前必须登录!
注册