zoukankan      html  css  js  c++  java
  • 备份全网服务器数据

    具体要求:

    NFS服务器nfs01和备份服务器backup的备份目录必须都为/backup 要备份的系统配置文件包括但不限于: 
    定时任务服务的配置文件(/var/spool/cron/root) 开机自启动的配置文件(/etc/rc.local) 
    日常脚本的目录(/server/scripts) 防火墙iptables的配置文件(/etc/sysconfig/iptables) 
    自己思考下还有什么需要备份呢 Web服务器站点目录假定为(/var/html/www) 
    Web服务器A访问日志路径假定为(/app/logs) Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满) 
    备份服务器上,保留每周一的所有数据副本,其它只保留6个月的数据副本 
    备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存。 
    需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发送给系统管理员邮箱中。

     

    NFS服务器运行脚本

     1 #!/bin/bash
     2 ip=192.168.200.129 #取一个变量值
     3 #下面开始打包备份
     4 [ -f /var/spool/cron/root ]
     5 if [ $? -eq 0 ];then
     6         cd /var/spool/cron && tar czf root.tar.gz_"$ip"_`date +%F-%w` root
     7         mv root.tar.gz_"$ip"_`date +%F-%w` /backup
     8         echo "root已备份完成"
     9 else
    10         echo "没有root这个文件"
    11 fi
    12 
    13 
    14 [ -f /etc/rc.local ]
    15 if [ $? -eq 0 ];then
    16         cd /etc/ && tar czf rc.local.tar.gz_"$ip"_`date +%F-%w` rc.local
    17         mv rc.local.tar.gz_"$ip"_`date +%F-%w` /backup
    18         echo "rc.local以备份完成"
    19 else
    20         echo "没有rc.local这个文件"
    21 fi
    22 
    23 
    24 [ -f /etc/sysconfig/iptables ]
    25 if [ $? -eq 0 ];then
    26         cd /etc/sysconfig/ && tar czf iptables.tar.gz_"$ip"_`date +%F-%w` iptables
    27         mv iptables.tar.gz_"$ip"_`date +%F-%w` /backup
    28         echo "iptables以备份完成"
    29 else
    30         echo "没有iptables这个文件" 
    31 fi
    32 
    33 
    34 [ -d /var/html/www ]
    35 if [ $? -eq 0 ];then
    36         cd /var/html && tar czf www.tar.gz_"$ip"_`date +%F-%w` www
    37 mv www.tar.gz_"$ip"_`date +%F-%w` /backup
    38         echo "www以备份完成"
    39 else
    40         echo "没有www这个目录" 
    41 fi
    42 
    43 [ -f /app/logs ]
    44 if [ $? -eq 0 ];then
    45         cd /app/ && tar czf logs.tar.gz_"$ip"_`date +%F-%w` logs
    46         mv logs.tar.gz_"$ip"_`date +%F-w%` /backup
    47         echo "logs以备份完成"
    48 else
    49         echo "没有logs这个文件"
    50 fi
    51 
    52 cd /
    53 tar czf backup.tar.gz_"$ip"_`date +%F-%w` backup #把备份目录打包为一会校验文件做准备
    54 mv backup.tar.gz_"$ip"_`date +%F-%w` backup #将打包好的备份目录移动到备份目录里
    55 cd /backup 
    56 md5sum backup.tar.gz_"$ip"_`date +%F-%w` > md5.txt #将打包的备份目录生成MD5校验文件
    57 rsync -az /backup/ rsync_backup@192.168.200.134::nfs  --password-file=/etc/rsync.password #将所有数据推送到备份服务器下
    58 #以下判断推送数据是否成功
    59 if [ $? -eq 0 ];then
    60         echo "数据推送完毕"
    61 else
    62         echo "数据推送失败"
    63         exit
    64 fi
    65 
    66 find /backup/ -type f -mtime +7 | xargs rm -rf #由于空间有限,需删除7天以上的打包备份文件

    Rsync备份服务器脚本

     1 #!/bin/bash
     2 lujing="backup"
     3 
     4 
     5 cd /"$lujing"
     6 
     7 md5sum -c md5.txt >&/dev/null #开始校验文件
     8 if [ $? -eq 0 ];then
     9         echo "数据完整"
    10         rm -rf md5.txt  
    11 else
    12         echo "数据丢失"
    13 fi
    14 
    15 find "$lujing" ! -name "*1" -type -f -mtime +180 | xargs rm -f #排除每周一的备份文件删除6个月以上的备份文件
  • 相关阅读:
    如何隔離物件之間的相依性
    Replace Temp with Query
    Replace conditional with Polymorphism
    Switch to strategy
    Microsoft Visual Studio 插件
    Windows Phone 8 开发系列(持续更新中)
    Windows Phone 如何振动手机?
    Windows Phone 如何在程序中播放提示声音?
    实现一个纵向排列的 ListBox ,并具有操作按钮
    多个 App 间启动
  • 原文地址:https://www.cnblogs.com/mendermi/p/9914796.html
Copyright © 2011-2022 走看看