美文网首页
无标题文章

无标题文章

作者: 石乐志的LK | 来源:发表于2017-09-14 17:30 被阅读0次

    需求:
    每天晚上00:00讲web服务器A上打包备份系统配置文件,网站程序目录及访问日志,并用rsync整点推送到备份服务器B上

    1. 系统配置文件包括但不限于
      a. 定时任务配置文件(/var/spool/cron/root)
      b. 开机自启配置文件(/etc/rc.local)
      c. 日常脚本目录(/server/scripts)
      d. 防火墙iptables的配置文件(/etc/sysconfig/iptables)

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

    3. web服务器A的访问日志文件路径假定为(/app/logs)

    4. web服务器保留打包后7天的备份数据即可(本地保留不能多于7天,因为太多的话硬盘会满),备份服务器B上要保留6个月的数据副本

    5. 备份服务器B上要按照备份数据服务器的IP为目录保存,打包文件按时间名字保存

    第一个里程碑,rsync数据备份

    1. 配置rsync服务器
      1.1 安装rsync
      yum install -y rsync
      1.2 配置rsync配置文件
      vim /etc/rsyncd.conf
      加入如下配置
    timeout = 300
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/run/rsyncd.log
    read only = false
    list = false
    hosts allow = 172.16.1.0/24
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    [backup]
    path = /backup
    

    1.3 配置密码本文件
    vim /etc/rsync.password
    写入设置的用户名和密码
    rsync_backup:123456
    1.4 修改密码本文件的权限
    chmod 600 /etc/rsync.password
    1.5 创建备份目录
    mkdir /backup
    1.6 创建虚拟用户
    useradd rsync -s /sbin/nologin -M rsync
    1.6 修改备份目录的权限所属
    chown rsync:rsync /backup

    1. 配置客户端
      2.1 安装rsync
      yum install -y rsync
      2.2 创建备份目录
      mkdir /backup
      2.3 创建密码文件
      vim /etc/rsync.password
      写入服务器端设置的密码
      123456
      2.4 修改密码文件权限
      chmod 600 /etc/rsync.password
    2. 测试是否能同步
      在客户机执行:
    touch /backup/{1..9}
    rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
    

    第二个里程碑,web本地实现打包脚本

    ip=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
    Path="/backup/$ip"
    mkdir $Path
    tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
    tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
    tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/
    

    第三个里程碑,配置定时任务

    配置web服务器的定时任务

    mkdir -p /server/scripts
    vim /server/scripts/backup.sh
    写入以下内容

    #!/bin/bash
    IP=$(ifconfig eth1 | awk -F '[ :]+' 'NR==2 {print $4}')
    Path="/backup/$IP"
    [ ! -d $Path ] && mkdir $Path -p
    #backup
    tar -zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables-config /server/scripts/
    tar -zcf $Path/www_$(date +%F).tar.gz /var/html/www/
    tar -zcf $Path/logs_$(date +%F).tar.gz /app/logs/
    #to bak server
    /usr/bin/rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
    #delete
    find /backup -type f -name "*.tar.gz"  -mtime +7 | xargs rm -f
    

    web服务器端加入计划任务
    crontab -e
    00 00 * * * /bin/sh /server/scripts/backup.sh &> /dev/null

    在backup服务器端编写脚本删除180天之前的压缩文件
    mkdir -p /server/scripts/
    vim /server/scripts/del.sh
    写入以下脚本内容
    /bin/find /backup -type f -name "*.tar.gz" -mtime +180 | xargs rm -f
    写完后执行以下看是否有错误
    sh /server/scripts/del.sh
    加入计划任务删除180天之前的压缩文件
    crontab -e
    00 00 * * * /bin/sh /server/scripts/del.sh

    完成!!!

    用md5检测是否备份成功

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/xujdsxtx.html