美文网首页
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