云计算百科
云计算领域专业知识百科平台

Linux项目——自动化备份全网服务器数据平台

一、项目背景

某企业有一台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
主机名IP地址硬件软件
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        //使用脚本发送


至此项目结束

赞(0)
未经允许不得转载:网硕互联帮助中心 » Linux项目——自动化备份全网服务器数据平台
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!