运维相关自我总结

备份文档——备份架构_rsync

2020-02-12  本文已影响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

服务端同旧
上一篇 下一篇

猜你喜欢

热点阅读