zoukankan      html  css  js  c++  java
  • 全网备份

     全网备份

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


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

    具体要求如下:

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

         需要创建备份目录

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

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

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

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

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

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

    定时任务   打包压缩

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

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

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

    Find 查找7天以前的 删除

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

    Find查找时!过去出   周一的文件 !-name “*-1.tar.gz”

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

    由于用ip地址命名   在客户端创建  /backup/$(hostname -i)/   目录 

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

    思路总结

    1. 1.       部署客户端    服务端  rsync    nfs    rpcbind
    2. 2.      客户端

    01.打包压缩文件 到指定目录/backup  

    02.检查打包的是否正确   小心 软连接(坑啊)  加  h ***

    04.校检  md5 配置变化信息

    03.保留7天以内的    删除 7天以前的

    04.然后推送   到  服务端

    1. 3.      服务段
    2. 01.  找到半年以前的  但是不包含周1的删除
    3. 02.  对比  md5 –c   推过来的信息  是否变化
    4. 03.  邮件
    5. 04.  测试 脚本 运行 正确 写入定时任务  错误 继续排查

     解决方案

    web01

    [root@web01 backup]# vim   /server/scripts/web.sh

    #!/bin/bash

    Dir="/backup"

    IP=`hostname -i`

    Date=`date +%F-%w -d "-1day"`

    # mkdir dir

    mkdir -p $Dir/$IP

    #tar sysconfig

    tar zchf $Dir/$IP/sys-${Date}.tar.gz /var/spool/cron/root  /etc/rc.local  /etc/sysconfig/iptables /server/scripts

    #tar www

    tar zcf $Dir/$IP/www-${Date}.tar.gz /var/html/www

    #tar logs

    tar zcf  $Dir/$IP/logs-${Date}.tar.gz /app/logs

    #find mdg

    find $Dir/ -type f -name "*.tar.gz" | xargs md5sum >$Dir/$IP/finger.txt

    #find  rm

    find $Dir/ -type f -mtime +7 -name "*.tar.gz" | xargs rm -f

    #raync info

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

    [root@web01 backup]# crontab -l

    #crond-id-001:time sync by oldboy

    */5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

    0 0 * * * /bin/sh /server/scripts/web.sh &>/dev/null

    [root@web01 backup]#

    ~ [root@web01 backup]# sh  /server/scripts/web.sh

    tar: Removing leading `/' from member names

    tar: Removing leading `/' from member names

    tar: Removing leading `/' from member names

    sending incremental file list

    172.16.1.8/finger.txt

    172.16.1.8/logs-2017-08-31-4.tar.gz

    172.16.1.8/sys-2017-08-31-4.tar.gz

    172.16.1.8/www-2017-08-31-4.tar.gz

     

    sent 1731 bytes  received 115 bytes  1230.67 bytes/sec

    total size is 1516  speedup is 0.82

    nfs储存服务器

    [root@nfs01 backup]# cat   /server/scripts/nfs.sh

    #!/bin/bash

    IP=`hostname -i`

    Dir="/backup"

    Date=`date +%F-%w -d "-1day"`

    # mkdir

    mkdir -p $Dir/$IP

    #tar sysconfig

    tar zchf $Dir/$IP/sys.backup-${Date}.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables

    #tar www

    tar zcf $Dir/$IP/html.backup-${Date}.tar.gz /var/html/www

    #tar logs

    tar zcf $Dir/$IP/logs.backup-${Date}.tar.gz /app/logs

    #find md5

    find $Dir/ -type f  -name "*.tar.gz" |xargs md5sum >$Dir/$IP/finger.txt

    #find rm

    find $Dir/ -type f  -name "*.tar.gz" -mtime +7 |xargs rm -f

    #rsync

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

    [root@nfs01 backup]#

    [root@nfs01 backup]# sh    /server/scripts/nfs.sh

    tar: Removing leading `/' from member names

    tar: Removing leading `/' from member names

    tar: Removing leading `/' from member names

    sending incremental file list

    ./

    172.16.1.31/finger.txt

    172.16.1.31/html.backup-2017-08-31-4.tar.gz

    172.16.1.31/logs.backup-2017-08-31-4.tar.gz

    172.16.1.31/sys.backup-2017-08-31-4.tar.gz

     

    sent 1416 bytes  received 118 bytes  3068.00 bytes/sec

    total size is 1660  speedup is 1.08

    [root@nfs01 backup]#

    [root@nfs01 backup]# crontab -l

    #crond-id-001:time sync by oldboy

    */5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

    0 0 * * * /bin/sh /server/scripts/nfs.sh &>/dev/null

    backup服务器

    [root@backup backup]# cat    /server/scripts/backup.sh

    #!/bin/bash

    #Author:oldboy

    #Blog:http://oldboy.blog.51cto.com

    #Time:2017-08-31 18:11:36

    #Name:/server/scripts/backup.sh

    #Version:V1.0

    #Description:This is a test script.

    Dir="/backup"

    IP=`hostname -i`

    #find rm

    find $Dir/  -type f -mtime +180 ! -name "*-1.tar.gz" | xargs rm -f

    #find md5

    find $Dir/ -type f -name "*.txt" | xargs md5sum -c >$Dir/result.log

    #mail

    mail -s "result" m17560610290@163.com <$Dir/result.log

     

     

    [root@backup backup]#

    邮件设置:

    [root@backup ~]# tail -8 /etc/mail.rc

    # For Linux and BSD, this should be set.

    set bsdcompat

    set from=m17560610290@163.com

    set smtp=smtp.163.com

    set smtp-auth-user=m17560610290@163.com

    set smtp-auth-password=520520LJS

    set smtp-auth=login

     

    [root@backup ~]#

    定时任务:

    [root@backup ~]# crontab -l

    #crond-id-001:time sync by oldboy

    */5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

    #rsync

    0 0 * * * /bin/sh server/scritps/backup.sh >/dev/null 2>&1

         

  • 相关阅读:
    VS2008编译出现问题:error C2485: “__restrict”: 无法识别的扩展属性 解决办法
    精度试验结果报告Sleep, GetTickCount, timeGetTime, QueryPerformanceCounter
    error C2872: 'ULONG_PTR' : ambiguous symbol
    无法删除文件:无法读源文件或磁盘”
    如何HOOK桌面窗口消息
    批处理常用特殊符号
    我的Hook学习笔记
    代码注入的三种方法
    Ubuntu 安装 “宋体,微软雅黑,WPS Office的symbol、wingdings、wingdings 2、wingdings 3、webding字体,Consolas雅黑混合版编程字体” 等 Windows 7 下的字体(转)
    Delphi中如何将 Exe 程序或其他资料打包在内,使用时再释放使用(转)
  • 原文地址:https://www.cnblogs.com/zdqc/p/9430911.html
Copyright © 2011-2022 走看看