美文网首页
Rsync备份案例-day3

Rsync备份案例-day3

作者: Linux运维 | 来源:发表于2020-04-14 16:14 被阅读0次

案例

客户端需求
1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02
2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02
3.客户端最后将备份的数据进行推送至备份服务器
4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
5.客户端每天凌晨1点定时执行该脚本

[root@manager ansible_roles_prod]# cat base/files/client_push_data_server.sh
#!/bin/bash
#进行全网备份     checheng 

#为目录、时间、ip、主机名设定变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Path=/backup_data
Host=$(hostname)
IP=$(ifconfig eth1 |awk '/netmask/ {print $2}')
Time=$(data +%F)
Name=${Host}_${IP}_${Time}


#1.创建存放备份文件的目录
mkdir -p $Path/$Name 

#2.打包想要备份的文件到创建的目录中
cd / &&\
tar czf $Path/$Name/one.tar.gz etc/hosts

#3.贴上封条
md5sum $Path/$Name/*.tar.gz > $Path/$Name/check_flag_$Time

#4.将数据推送到备份服务器
rsync -avz $Path/ rsync_backup@172.16.1.41::backup

#4.保留最近七天的数据
find $Path -type d -mtime +7 |xargs rm -rf

服务端需求
1.服务端部署rsync,用于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员
4.服务端仅保留6个月的备份数据,其余的全部删除

实现流程图

需注意的几点

NO.1:为了让内容不被写死,需要设定变量

1.变量就是固定的字符串,变量的值可能是不固定的
2.变量名首字母大写,为了和命令进行区分

3.  $() 里面放的是命令,  ${} 里面放的是变量  

NO.2:定时任务要先进行测试,并且要写绝对路径

#同步时间
ntpdate time.windows.com

NO.3:脚本文件要给予执行权限,+x

NO.4:检验客户端推送过来的数据是否完整

1.客户端
将数据进行打包,再贴上封条,最后推送给服务端

#生成校验码=贴上封条
md5sum 压缩包名称 > 存放到的目录

2.服务端
根据客户端推送的封条,检验数据是否一致,讲结果存储到某个文件中,最后通知给管理员

#检验
md5sum -c

NO.5:怎样将检验结果通过邮箱发送给管理员呢?

#收件人
mail -s "邮件名称" 邮箱地址 <发送的内容
#发件人,对配置文件进行编辑,需要用到授权码
vim /etv/mail.rc  

相关文章

网友评论

      本文标题:Rsync备份案例-day3

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