首页 > 代码库 > 模拟企业备份实战

模拟企业备份实战


我们都知道对于企业而言,数据是很重要的,随着大数据的到来,企业越来越重视数据的可靠性,所以一般企业对重要数据都会做备份,有的还有异地备份等等。

下面来模拟一下企业数据备份实践。

 情景:领导说:现在有台web服务器A,相关数据很重要,你把该台上的数据定时备份到B服务器上。

作为运维人员的你,会做什么思考?

 要知道我们最终的目的是要做好数据备份,备份哪些数据、如何实行备份则需要运维人员去思考。

web服务器需要备份的数据如下,可能还有其他的。

  1. 站点数据

  2. 站点访问日志文件

  3. 脚本文件-用于维护

  4. 系统定时任务

  5. 防火墙

  6. 系统启动文件

7.....

例如以上需要备份如下

/var/html/www

/app/logs

/etc/rc.local

/etc/sysconfig/iptables

可以直接将etc目录做备份,etc中有系统相关配置文件

/var/spool/cron/root

思路:我们可以先将本地要备份的数据打包,统一放到本地的一个目录,然后再将该目录数据备份到备份服务器上。

由于公司服务器可能不止一台,我们可以将打包的数据放到以IP命名的目录,然后推送到备份机上.

我这里是将相关操作放到脚本中。

vim /server/scripts/bakup.sh

#!/bin/sh

serverip=192.168.1.10

dst=tuwei01      ##服务端rsync配置文件中的模块

src=http://www.mamicode.com/backup

log=/app

www=/var/html

script=/server

usr=rsync_backup

file=/etc/rsync.password

ip=`grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F "=" ‘{print $2}‘`

mkdir -p /backup/$ip

################ bak web_site

cd $www && tar zcf  $src/$ip/www_$(date +%F).tar.gz  ./www  

################  bak  log

cd $log  && tar zcf  $src/$ip/logs_$(date +%F).tar.gz  ./logs

##################bak sys config,like /etc/rc.local /etc/sysconfig/iptables.....

cd / && tar zcf $src/$ip/etc_$(date +%F).tar.gz  ./etc

####################bak  scripts

cd $script && tar zcf  $src/$ip/scripts_$(date +%F).tar.gz  ./scripts

#####################bak the crond of the system

/bin/cp /var/spool/cron/root $src/$ip/root_$(date +%F)

#######################the bak is full,the follwing is putting the data to the server

cd $src && rsync -az ./   $usr@$serverip::$dst --password-file=$file


讲下脚本内容,最开始是定义一些变量,存放要备份的相关目录或后面需要用到的,目的是后续相关文件有改变,只需要修改开头的变量就可以了,不必在脚本中每一处都修改。

那个查询IP地址的,如果为ubuntu系统则不适用,ubuntu系统IP配置在其他文件中。

后面是创建以IP命名的目录,这样在后续推送的时候可以做到以IP为目录,方便后续维护。

相信后面的基础命令大家都很熟悉,就不一一介绍了。

来看下实际效果。

测试前:

客户端

[root@backupclient backup]# pwd

/backup

[root@backupclient backup]# ll

total 0

[root@backupclient backup]# 

服务端

[root@backupserver backup]# pwd

/backup

[root@backupserver backup]# ll

total 0

[root@backupserver backup]#

测试过程

执行脚本 [root@backupclient scripts]# sh bakup.sh

测试结果

  客户端

[root@backupclient backup]# ll

total 4

drwxr-xr-x. 2 root root 4096 Apr 22 18:43 192.168.1.11

[root@backupclient backup]# cd 192.168.1.11/

[root@backupclient 192.168.1.11]# ll

total 9544

-rw-r--r--. 1 root root 9753843 Apr 22 18:43 etc_2017-04-22.tar.gz

-rw-r--r--. 1 root root     112 Apr 22 18:43 logs_2017-04-22.tar.gz

-rw-------. 1 root root      64 Apr 22 18:43 root_2017-04-22

-rw-r--r--. 1 root root    1955 Apr 22 18:43 scripts_2017-04-22.tar.gz

-rw-r--r--. 1 root root     417 Apr 22 18:43 www_2017-04-22.tar.gz

服务端


[root@backupserver backup]# ll

total 4

drwxr-xr-x 2 root root 4096 Apr 22 18:43 192.168.1.11

[root@backupserver backup]# cd 192.168.1.11/

[root@backupserver 192.168.1.11]# ll

total 9544

-rw-r--r-- 1 root root 9753843 Apr 22 18:43 etc_2017-04-22.tar.gz

-rw-r--r-- 1 root root     112 Apr 22 18:43 logs_2017-04-22.tar.gz

-rw------- 1 root root      64 Apr 22 18:43 root_2017-04-22

-rw-r--r-- 1 root root    1955 Apr 22 18:43 scripts_2017-04-22.tar.gz

-rw-r--r-- 1 root root     417 Apr 22 18:43 www_2017-04-22.tar.gz

测试脚本没有问题,可以采用定时任务,如每天凌晨进行备份。

crontab -e

00 00 * * * /bin/sh  /server/scripts/bakup.sh >/dev/null 2 &>1


至此,一次模拟实战结束。

本文出自 “学不思则惘 思不学则殆” 博客,谢绝转载!

模拟企业备份实战