实战项目-全网备份

目录

一、环境准备

二、如何实现发送邮件

    01. 配置163企业邮箱

    02.配置qq邮箱

​    03.编写linux服务邮件相关配置文件

    04. 发送邮件测试

三、编写全网备份脚本

1)客户端脚本:

    01.nfs01服务器备份脚本:

    02.web01服务器备份脚本:

2)服务端脚本

     01.backup服务器备份脚本:

四、实现自动完成全网数据备份(定时任务)

     01.客户端定时任务:

     02.服务端定时任务

 


一、环境准备

1、基本备份要求
已知 3 台服务器主机名分别为 web01、backup 、nfs01,主机信息见下表:

主机名称外网IP(NAT)内网IP(NAT)服务器说明
backup10.0.0.41/24172.16.1.41/24rsync备份服务器
nfs0110.0.0.31/24172.16.1.31/24NFS存储服务器
web0110.0.0.8/24172.16.1.8/24nginx web服务器


要求:

       每天晚上 00 点整在 Web 服务器上打包备份系统配置文件、网站程序目录及访问日志并通过 rsync 命令推送备份服务器 backup 上备份保留(备份思路可以是先在本地按日期打包,然后再推到备份服务器 backup 上) ,NFS 存储服务器同 Web 服务器,实际工作 中就是全部的服务器。


具体要求如下:(PS:没有的目录需要自己创建)
1)所有服务器的备份目录必须都为/backup。

2)要备份的系统配置文件包括但不限于:(web01 nfs01)

a.定时任务服务的配置文件(/var/spool/cron/root)

b.开机自启动的配置文件(/etc/rc.local)

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

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

e.自己思考下还有什么需要备份呢?

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

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

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

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

PS:部署好rsync守护进程服务 (backup)

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

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

二、如何实现发送邮件

        01. 配置163企业邮箱

        02.配置qq邮箱


        03.编写linux服务邮件相关配置文件

vim /etc/mail.rc


        set from=yb1781668237@163.com smtp=smtp.163.com                 
        set smtp-auth-user=yb1781668237@163.com smtp-auth-password=授权密码 (163邮箱) smtp-auth=login
        

systemctl restart postfix.service


        04. 发送邮件测试

       

echo "邮件发送测试"|mail -s "邮件测试" 1781668237@qq.com        
mail -s "邮件测试" 1781668237@qq.com </etc/hosts

三、编写全网备份脚本

1)客户端脚本:

        1.nfs01服务器备份脚本:

vim /server/scripts/backup.sh 

#!/bin/bash

Backup_dir="/backup"
IP_info=$(hostname -i)

# create backup dir
mkdir -p $Backup_dir/$IP_info

# tar backup data
cd /
tar zchf /$Backup_dir/$IP_info/system_backup_$(date +%F_week%w -d -1day).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables

# del 7 day ago data
find $Backup_dir -type f -mtime +7|xargs rm 2>/dev/null

# create finger file
find $Backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/$Backup_dir/$IP_info/finger.txt

# backup push data info
rsync -az $Backup_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    

       2.web01服务器备份脚本:

vim /server/scripts/backup.sh 

#!/bin/bash

Backup_dir="/backup"
IP_info=$(hostname -i)

# create backup dir
mkdir -p $Backup_dir/$IP_info

# tar backup data
cd /
tar zchf /$Backup_dir/$IP_info/system_backup_$(date +%F_week%w -d -1day).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables
tar zchf /$Backup_dir/$IP_info/www_backup_$(date +%F_week%w).tar.gz  ./var/html/www
tar zchf /$Backup_dir/$IP_info/www_log_backup_$(date +%F_week%w).tar.gz  ./app/logs

# del 7 day ago data
find $Backup_dir -type f -mtime +7|xargs rm 2>/dev/null

# create finger file
find $Backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/$Backup_dir/$IP_info/finger.txt

# backup push data info
rsync -az $Backup_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

2)服务端脚本

      1.backup服务器备份脚本:

vim /server/scripts/backup_server.sh

#!/bin/bash
# del 180 day ago data
find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz"|xargs rm 2>/dev/null

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

# send check mail
mail -s "check backup info for $(date +%F)" 1781668237@qq.com </tmp/check.txt

四、实现自动完成全网数据备份(定时任务)


    01.客户端定时任务:

   

crontab -e 


    # backup data
    0 0 * * *  /bin/sh /server/scripts/backup.sh &>/dev/null
    

   02.服务端定时任务

crontab -e 

    # check backup data
    0 5 * * *  /bin/sh /server/scripts/backup_server.sh &>/dev/null

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值