首页 > 代码库 > 模拟企业备份实战
模拟企业备份实战
我们都知道对于企业而言,数据是很重要的,随着大数据的到来,企业越来越重视数据的可靠性,所以一般企业对重要数据都会做备份,有的还有异地备份等等。
下面来模拟一下企业数据备份实践。
情景:领导说:现在有台web服务器A,相关数据很重要,你把该台上的数据定时备份到B服务器上。
作为运维人员的你,会做什么思考?
要知道我们最终的目的是要做好数据备份,备份哪些数据、如何实行备份则需要运维人员去思考。
web服务器需要备份的数据如下,可能还有其他的。
站点数据
站点访问日志文件
脚本文件-用于维护
系统定时任务
防火墙
系统启动文件
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
至此,一次模拟实战结束。
本文出自 “学不思则惘 思不学则殆” 博客,谢绝转载!
模拟企业备份实战