美文网首页运维相关自我总结
备份文档——备份架构_rsync

备份文档——备份架构_rsync

作者: 如歌丨如歌 | 来源:发表于2020-02-12 20:22 被阅读0次
    采用push的方式拉取备份文件
        客户端推: 备份数据
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
         
            src     需要推送的备份数据信息
            [USER@] 指定认证用户信息***
            HOST    远程主机地址
            ::DEST  备份服务器的模块信息      
        
    1..服务端安装rsync,编写配置文件
    vim /etc/rsyncd.conf
        uid = rsync       --- 指定管理备份目录的用户
        gid = rsync       --- 指定管理备份目录的用户组
        port = 873        --- 定义rsync备份服务的网络端口号
        fake super = yes  --- 将rsync虚拟用户伪装成为一个超级管理员用户 
        use chroot = no   --- 和安全相关的配置
        max connections = 200  --- 最大连接数  同时只能有200个客户端连接到备份服务器
        timeout = 300          --- 超时时间(单位秒)
        pid file = /var/run/rsyncd.pid   --- 记录进程号码信息 1.让程序快速停止进程 2. 判断一个服务是否正在运行 kill 结合cat命令
        lock file = /var/run/rsync.lock  --- 锁文件??
        log file = /var/log/rsyncd.log   --- rsync服务的日志文件 用于排错分析问题
        ignore errors                    --- 忽略传输中的简单错误
        read only = false                --- 指定备份目录是可读可写
        list = false                     --- 使客户端可以查看服务端的模块信息??
        hosts allow = 172.16.1.0/24      --- 允许传输备份数据的主机(白名单)
        hosts deny = 0.0.0.0/32          --- 禁止传输备份数据的主机(黑名单)
        auth users = rsync_backup        --- 指定认证用户: 必须通过认证??
        secrets file = /etc/rsync.password   --- 指定认证用户密码文件 用户名称:密码信息
        [backup]                         --- 模块信息
        comment = "backup dir by oldboy"  
        path = /backup                   --- 模块中配置参数 指定备份目录**备份服务器的目录
        
    2..服务端创建rsync用户 创建密码文件
        useradd rsync -M -s /sbin/nologin
        echo "rsync_backup:123456" >> /etc/rsync.password
        权限600,属主root
        
    4..客户端安装rsync软件,创建纯密码(123456)文件
        无需启动rsync服务
        密码文件权限600
    3..实现免交互传输
        首先需要创建备份目录 才能进行测试
        第一步: 客户端创建密码文件
            echo "123456" >> /etc/rsync.password
            chmod 600 /etc/rsync.password
            
            免交互测试:
        第二步: 客户端执行: # rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    4..完善备份模块
        模块规划:
            web服务器:
                [web]
                comment = "backup dir by oldboy"
                path = /backup/web
            负载均衡服务器:
                [lb]
                comment = "backup dir by oldboy"
                path = /backup/lb
            nfs服务器:
                [nfs]
                comment = "backup dir by oldboy"
                path = /backup/nfs
            监控服务器:
                [zabbix]
                comment = "backup dir by oldboy"
                path = /backup/zabbix
            管理服务器:
                [manager]
                comment = "backup dir by oldboy"
                path = /backup/manager
    5..其他的一些要求
        要备份的系统配置文件包括但不限于:
          a.定时任务服务的配置文件(/var/spool/cron/root)(适合web和nfs服务器)。
          b.开机自启动的配置文件(/etc/rc.local)(适合web和nfs服务器)。
          c.日常脚本的目录(/server/scripts)。
          d.防火墙iptables的配置文件(/etc/sysconfig/iptables)。
          e.自己思考下还有什么需要备份呢? 
          web01 nfs01 
        
        Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)  
           web01 nfs01
           
        备份服务器上,保留每周一的所有数据副本,其它要保留6个月的数据副本。             
           部署好rsync守护进程服务 
           backup
           
        备份服务器上要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存
            客服端创建文件夹时使用 mkdir -p /backup/`hostname -i` 命令进行创建
            
    备份: 
        tar -czvhf /backup/nfs/`hostname -i`/system_data_bak_`date +%F_week%w.tar.gz` /var/spool/cron/root /etc/rc.local /server/scripts  /etc/yum.repos.d  &> /dev/null
        
    文件校验:
        备份时可以使用tar -tf 文件 进行简单查看所备份的文件是否都存在
        客户端创建MD5校验文件
            find /backup/nfs/`hostname -i`/ -type f -mtime -1 ! -name "finger.txt" | xargs md5sum > /backup/nfs/`hostname -i`/finger.txt
            
    传输:
        rsync -avz /backup/nfs/`hostname -i` rsync_backup@172.16.1.41::nfs --password-file=/etc/rsync.password
    
    服务端校验,生成校验信息:
        find /backup/ -name "finger.txt" | xarg md5sum -c > /tmp/check.txt
        
    ============注意事项=========
    如要进行md5sum校验,客户端和服务端的备份路径要一模一样,否则,根据finger.txt中的密文信息,无法校验成功
    
    邮箱通知备份情况:
        发送邮件: 
        配置163邮箱
        备份服务器编写配置: vim /etc/mail.rc     最后一行编写
        set from=daxdinaive@163.com smtp=smtp.163.com                
        set smtp-auth-user=daxdinaive@163.com smtp-auth-password=lyl199610 smtp-auth=login
        systemctl restart postfix.service
    
        echo "早上8点到新安江集中,晚上再回去"|mail -s "明天计划" daxdinaive@foxmail.com
    
        mail -s "备份情况" daxdinaive@foxmail.com < /tmp/check.txt
    
    系统空间优化:
        备份服务器上,保留每周一的所有数据副本,其它要保留6个月的数据副本。
        find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz" | xarg rm -rf 
        Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
        find /backup/ -type f -mtime +7 | xargs rm -rf
        
    最后,将命令结合,生成脚本:
        客户端:
            
            #!/bin/bash
            #delete 7 days ago's files
            find /backup/ -type f -mtime +7 | xargs rm -rf
            #make up tar.gz
            tar -czvhf /backup/nfs/`hostname -i`/system_data_bak_`date +%F_week%w.tar.gz` /var/spool/cron/root /etc/rc.local /server/scripts  /etc/yum.repos.d  &> /dev/null
            #make up finger.txt
            find /backup/nfs/`hostname -i`/ -type f -mtime -1 ! -name "finger.txt" | xargs md5sum > /backup/nfs/`hostname -i`/finger.txt
            #send tar.gz to backup_server
            rsync -avz /backup/nfs/`hostname -i` rsync_backup@172.16.1.41::nfs --password-file=/etc/rsync.password
            
        服务端:
            #!/bin/bash
            #delete 7 days ago's files
            find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz" | xarg rm -rf
            #check backup_file's md5sum 
            find /backup/ -name "finger.txt" | xarg md5sum -c > /tmp/check.txt
            #send e-mail to manager
            mail -s "备份情况" daxdinaive@163.com < /tmp/check.txt
    优化后:
    客户端:
    [root@nfs01 scripts]# vim backup.sh
    #!/bin/bash
    Dir=nfs
    #delete 7 days ago's files
    find /backup/ -type f -mtime +7 | xargs rm -rf
    #make up tar.gz
    tar -czvhf /backup/$Dir/`hostname -i`/system_data_bak_`date +%F_week%w.tar.gz` /var/spool/cron/root /etc/rc.local /server/scripts  /et
    c/yum.repos.d
    #make up finger.txt
    find /backup/$Dir/`hostname -i`/ -type f -mtime -1 ! -name "finger.txt" | xargs md5sum > /backup/$Dir/`hostname -i`/finger.txt
    #send tar.gz to backup_server
    rsync -avz /backup/$Dir/`hostname -i` rsync_backup@172.16.1.41::$Dir --password-file=/etc/rsync.password
    
    服务端同旧
    

    相关文章

      网友评论

        本文标题:备份文档——备份架构_rsync

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