全网备份解决方案

全网备份解决方案

已知3台服务器主机名分别为web01、backup、nfs01,主机信息见下表:

服务器说明外网IP内网IP主机名称
nginx web服务器10.0.0.8/24172.16.1.8/24web01
NFS存储服务器10.0.0.31/24172.16.1.31/24nfs01
rsync备份服务器10.0.0.41/24172.16.1.41/24backup

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

具体要求如下:

1)所有服务器的备份目录必须都为**/backup**。

mkdir /backup  #可以直接写入客户端脚本中

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

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

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

c.日常脚本的目录 (/server/scripts)(适合web和nfs服务器)。

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

#首先是nfs服务器
#压缩所要求的目录
tar zcvfP /backup/sys_log.tar.gz /var/log/cron /etc/rc.local /server/scripts /etc/sysconfig/iptables

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

tar zcvfP /backup/html_www.tar.gz /var/html/www

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

tar zcvfP /backup/app_log.tar.gz /app/logs

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

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

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

#在备份服务器中进行操作
find /backup/ -mtime +180 -type f !-name "*Mon*" -delete 

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

#这条需求要在客户端进行脚本操作
IP_add=`hostname -!`
mkdir -p  /backu/$IP_add
#这样的话 当我们操作时 就不用再查看当前主机的ip地址 适用于大量服务器备份

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

#这个需求包括需要验证文件的完整性发送邮件到用户

#验证文件的完整性 (以nfs客户端为例)
#打包要发送的数据
tar zcvfP /backup/sys_log.tar.gz /var/log/cron /etc/rc.local /server/scripts /etc/sysconfig/iptables
#把一天内的压缩包进行配置指纹
find /backup/ -mtine -1 -type f -name "*tar.gz" |xargs md5sum >/backup/finger.txt
#传输数据到目标文件块中
rsync -avz /backup/ rsync_backup@172.16.1.41
#接下来就是备份服务器
find /backup/ -mtime -1 -type f -name "finger.txt" |xargs md5sum -c >/tmp/check.txt
#发送邮件
mail -s "test" #这是邮件标题# 18150074***@qq.com </tmp/check.txt 发送效验结果到指定邮箱
配置/etc/mial.rc这个文件 在文件底行直接加入
set from=1815007***@qq.com smtp=smtp.qq.com
set smtp-auth-user=1815007***@qq.com smtp-auth-password=thnmektgvhrgcbeb(16位密码要自己获取) smtp-auth=login

邮箱配置如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GUVqTzXD-1571898480870)(C:\Users\Administrator\Desktop\1571896703(1)].png)

选择设置开启以下服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uf56Osbw-1571898480879)(C:\Users\Administrator\Desktop\1571896888(1)].png)

这个服务默认是关闭的 当我们开启时 会自动提示获取密码的 所以只需要按步骤操作即可

把以上命令整理为脚本首先是nsf服务器

#!/bin/bush 

#创建文件夹
IP_add=`hostname -i`
mkdir -p  /backup/$IP_add

#对文件进行打包压缩
tar zcvhfP /backup/$IP_addsys_log.tar.gz.`date +"%F_%A"`.tar.gz  /var/spool/cron/root  /etc/rc.local  /server/scripts  /etc/sysconfig/iptables-config


#生成文件指纹
find /backup/$IP_add/ -name "*tar.gz" -type f -mtime -1 |xargs md5sum >/backup/$IP_add/finger.txt

#守护进程方式远程传输信息

rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

#删除本地备份大于七天的数据

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


web端服务器

#!/bin/sh
Dir_info="/backup"
IP_info="$(hostname -i)"
#创建出文件夹
mkdir -p $Dir_info/$IP_info
#对文件进行进行压缩
cd /
tar zchPf $Dir_info/$IP_infohtml_www.tar.gz.$(date +%F_星期%w).tar.gz /var/html/www/
tar zchPf $Dir_info/$IP_infoapp_log.tar.gz.$(date +%F_星期%w).tar.gz /app/logs/
#创建指纹
find $Dir_info/$IP_info/ -type f  -name "*.tar.gz" -mtime -1|xargs md5sum >$Dir_info/$IP_info/finger.txt
#远程传输
rsync -avz $Dir_info/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsyncd.password
#找到七天前的数据删除
find $Dir_info -type f -mtime +7 -name "*.tar.gz" -delete

backup服务器端

#!/bin/bash
#校对文件的指纹 校验传输到一个文件
find /backup/ -type f -mtime -1 -name "finger.txt"|xargs md5sum -c &>/tmp/check_info.txt
#发送E-mail文件到自己用户
mail -s "backup_check_info" 1815007411@qq.com </tmp/check_info.txt
#找到备份服务器超过180天的文件 将除了周一以外的数据删除
find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*星期1.tar.gz" -delete 

o" 1815007411@qq.com </tmp/check_info.txt
#找到备份服务器超过180天的文件 将除了周一以外的数据删除
find /backup/ -type f -name “*.tar.gz” -mtime +180 ! -name “*星期1.tar.gz” -delete


以上就是需求解决方法,其余需求可直接添加,比如定时任务等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为您提供一个简单的Shell脚本,用于备份全网服务器数据:#!/bin/bash# 备份全网服务器数据for server in `cat server_list`dobackup_host $serverdone ### 回答2: 全网服务器数据备份的shell脚本主要是实现对服务器上的数据进行备份的自动化操作。具体实现的步骤如下: 1. 首先,我们需要确定备份的目标路径,可以选择本地硬盘、网络存储设备或者云存储服务。在脚本中,我们可以设置一个变量来存储备份路径的地址。 2. 然后,我们需要使用shell的一些命令来进行备份操作。通常可以使用tar命令对数据进行打包和压缩操作,并将其保存到备份路径中。在脚本中,我们可以使用`tar -czvf`命令来实现打包和压缩数据,`-c`表示创建新的备份文件,`-z`表示使用gzip压缩,`-v`表示显示详细操作信息,`-f`表示指定备份文件的名称。 3. 备份完成后,可以添加一些文件操作命令,如移动、删除、重命名等,以便对备份文件进行管理。例如,我们可以使用`mv`命令将备份文件移动到指定的目录中。 4. 为了实现定期备份,我们可以使用cron服务来定时执行备份脚本。通过编辑cron表达式,可以设置备份的间隔时间和执行时间。 总的来说,全网服务器数据备份的shell脚本需要确定备份路径、使用tar命令压缩数据、管理备份文件,并结合cron服务实现定时备份。此外,为了保证备份的可靠性,可以考虑在备份脚本中添加日志记录和错误处理等功能,以便监控备份过程中的任何异常情况。 ### 回答3: 全网服务器数据备份的shell脚本可以使用以下步骤进行实现: 1. 首先,我们需要创建一个新的脚本文件,例如backup.sh,并在文件开头添加#!/bin/bash来指定使用bash作为脚本的解释器。 2. 确定要备份的目标服务器,可以使用ssh命令远程登录到服务器。在脚本中添加ssh登录命令,例如:ssh user@serverIP,其中user是登录服务器的用户名,serverIP是服务器的IP地址。 3. 在登录到服务器之后,我们需要使用rsync命令来进行文件同步和备份。rsync可以通过SSH协议安全地实现数据传输。在脚本中添加rsync命令,例如:rsync -avz --progress source_directory destination_directory,其中source_directory是要备份的目录,destination_directory是备份目标目录。 4. 可以使用tar命令创建一个压缩文件,将备份的数据打包起来以便于传输或存储。在脚本中添加tar命令,例如:tar -zcvf backup.tar.gz backup_directory,其中backup_directory是备份目录。 5. 最后,可以选择将备份文件传输到另一个目标服务器或存储设备上。可以使用scp命令将备份文件从源服务器复制到目标服务器,例如:scp backup.tar.gz user@destinationIP:destination_directory,其中destinationIP是目标服务器的IP地址,destination_directory是目标目录。 以上是一个简单的全网服务器数据备份的shell脚本示例。根据实际需求,可以根据需要调整和改进脚本中的命令和参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值