美文网首页
Rsync备份服务实践

Rsync备份服务实践

作者: mk_ | 来源:发表于2021-07-16 10:57 被阅读0次

    1、构建环境:

    主机名               IP

    rsync           192.168.1.170

    web01         192.168.1.171

    web02          192.168.1.172

    2、项目需求

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

    2)所有服务器的脚本目录必须都为/server/scripts  

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

    4)备份服务器上,保留每周一的校验结果文件,其它要保留6个月的数据副本。           

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

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

    1、scripts服务端的配置

    [root@localhost ~]# hostnamectl set-hostname rsync

    [root@localhost ~]# bash

    [root@rsync ~]# mkdir -p /server/scripts

    [root@rsync ~]# cd /server/scripts

    [root@rsync scripts]# vim rsync_install.sh

    #!/bin/bash

    #1、安装软件包

    yum install -y rsync &> /dev/null

    #2、创建用户

    useradd -M -s /sbin/nologin rsync

    #3、创建备份目录

    mkdir -p /backup

    chown -R rsync.rsync /backup

    #4、修改配置文件

    cat >/etc/rsyncd.conf<<EOF

    uid = rsync

    gid = rsync

    port = 873

    fake super = yes

    use chroot = no

    max connections = 200

    timeout = 600

    ignore errors

    read only = false

    list = false

    auth users = rsync_backup

    secrets file = /etc/rsync.passwd

    [backup] 

    comment = welcome to nfzlback

    path = /backup

    EOF

    #5、创建认证文件

    echo 'rsync_backup:passwd' > /etc/rsync.passwd

    chmod 600 /etc/rsync.passwd

    #6、启动服务

    systemctl start rsyncd &> /dev/null

    systemctl enable rsyncd &> /dev/null

    systemctl status rsyncd &> /dev/null

    echo "rsync start success"


    scripts客户端的配置

    [root@web01 ~]# mkdir -p /server/scripts

    [root@web01 ~]# vim /server/scripts/rsync_backup.sh

    #!/bin/bash

    #1、安装软件包

    yum install -y rsync

    #2、定义变量

    Host=$(hostname)

    Ip=$(ifconfig ens33 | awk 'NR==2{print $2}')

    Date=$(date +%F)

    BackupDir=/backup

    Dest=${BackupDir}/${Host}_${Ip}_${Date}

    #3、创建备份目录

    mkdir -p $Dest

    #4、收集需要备份的文件

    #Sysconfig backup

    tar -czvf $Dest/sysconf.tar.gz /etc/fstab /etc/hosts

    #Log backup

    tar -czvf $Dest/log.tar.gz /var/log/messages /var/log/secure

    #5、校验

    md5sum $Dest/* >$Dest/backup_check_$Date

    #6、将备份目录推动到rsync服务端

    Rsync_Ip=192.168.1.170

    Rsync_user=rsync_backup

    Rsync_Module=backup

    export RSYNC_PASSWORD=passwd

    rsync -avz $Dest $Rsync_user@$Rsync_Ip::$Rsync_Module

    #7、删除7天备份目录

    find $BackupDir -type d -mtime +7 | xargs rm -rf 

    邮件通知管理员

    yum install -y mailx -y

    vim /etc/mail.rc    #最后一行插入

    set from=373370405@qq.com

    set smtp=smtps://smtp.qq.com:465

    set smtp-auth-user=373370405@qq.com

    set smtp-auth-password=授权码

    set smtp-auth=login

    set ssl-verify=ignore

    set nss-config-dir=/etc/pki/nssdb

    \\校验数据并发送邮件给管理员

    [root@rsync ~]# vim /server/scripts/check_backup.sh

    #!/bin/bash

    #1、定义变量

    Path=/backup

    Date=$(date +%F)

    #2、查看flag文件,并对对文件进行校验,然后将校验的结果保存至result_时间

    find $Path/*_${Date} -type f -name "backup_check*"|xargs md5sum -c >$Path/result_${Date}

    #3、将校验结果发送邮件给管理员

    mail -s "Rsync Backup log" 373370405@qq.com <$Path/result_${Date}

    #4、删除超过7天的校验结果文件,删除超过180天的备份数据文件

    find $Patj -type f -name "result*" -mtime +7 | xargs rm -rf

    find $Patj -type f -mtime +180 | xargs rm -rf

    写计划任务

    00 01 * * * /bin/bash /server/scripts/rsync_back.sh &> /dev/null

    相关文章

      网友评论

          本文标题:Rsync备份服务实践

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