加两个需求:
1.增加一个模块
2.每个模块不同的用户名

步骤:

.修改配置文件/etc/rsyncd.conf
[backup]
comment = commit
path = /backup
auth users=rsync_backup1
secrets file=/etc/rsync1.passwd
[data]
comment = commit
path = /data
auth users=rsync_backup2
secrets file=/etc/rsync2.passwd .增加目录
mkdir /data
chown -R rsync.rsync /data .增加相应的认证文件
echo 'rsync_backup1:1' > /etc/rsync1.passwd
echo 'rsync_backup2:1' > /etc/rsync2.passwd
chmod /etc/rsync?.passwd .重启服务生效

5.Rsync备份案例
已知2台服务器主机分别为backup、nfs,主机信息见下表

角色        外网IP(NAT)     内网IP(LAN)       主机名
Rsync服务端 eth0:10.0.1.51 eth1:172.16.1.51 backup
Rsync客户端 eth0:10.0.1.41 eth1:172.16.1.41 nfs

客户端要求:
1.客户端每天凌晨01点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置等文件)
2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,例/backup/nfs_172.16.1.41_2020-01-20
3.客户端最后通过rsync推送本地打包好的备份文件至backup服务器
4.客户端服务器本地保留最近七天的数据,避免浪费磁盘空间

分析思路:

.备份谁
系统配置文件:
/etc/fstab /etc/hosts /var/spool/cron/root
日志文件:
/var/log/messages /var/log/secure /var/log/cron
服务配置文件:
/etc/rsyncd.conf .备份的要求
/backup/nfs_172.16.1.41_2020-- 获取的信息有:
主机名:hostname
IP地址:ifconfig eth1 | awk 'NR==2{print $2}' 或 hostname -I | awk '{print $2}'
时间:date +%F
目录名:/backup/$(hostname)_$(hostname -I | awk '{print $2}')_$(date +%F) 注意;建议使用变量来优化命令

优化后的客户端脚本代码

#!/bin/bash

#.定义变量
Host=$(hostname)
IP=$(ifconfig eth1 | awk 'NR==2{print $2}')
Date=$(date +%F)
BackupDir=/backup
Dest=${BackupDir}/${Host}_${IP}_${Date} #.创建备份目录
mkdir -p $Dest #.收集需要备份的文件
#sysconf backup
tar czf $Dest/sysconf.tar.gz /etc/fstab /etc/hosts /var/spool/cron/root &>/dev/null
#logs backup
tar czf $Dest/log.tar.gz /var/log/messages /var/log/secure /var/log/cron &>/dev/null
#svrconf backup
tar czf $Dest/svrconf.tar.gz /etc/rsyncd.conf &>/dev/null #.校验
md5sum $Dest/* > $Dest/backup_check__$Date #5.将备份目录推送到服务端
Rsync_IP=172.16.1.51
Rsync_User=rsync_backup
Rsync_Module=backup
export RSYNC_PASSWORD=1
rsync -avz $Dest $Rsync_User@$Rsync_IP::$Rsync_Module #6.保留7天以内的备份数据
find $BackupDir -type d -mtime +7 | xargs rm -rf

问题:
1.文件没有归档压缩
2.没校验

服务端要求:

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

注意:所有服务器的备份目录必须都为/backup

.把服务搭建起来
.检查校验结果,并保存到指定的文件中
md5sum -c /backup/*_$(date +%F)/backup_check* > /backup/*_$(date +%F)/result_$(date +%F).txt
3.通过邮件发送给管理员
[root@backup ~]# yum install mailx -y
[root@backup ~]# vim /etc/mail.rc
set from=1445xxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=144xxxxx@qq.com
set smtp-auth-password=验证授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb mail -s "test" 144xxxxx@qq.com </etc/hosts

rsync实战(二)的更多相关文章

  1. 【NFS项目实战二】NFS共享数据的时时同步推送备份

    [NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...

  2. coreseek实战(二):windows下mysql数据源部分配置说明

    coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...

  3. chrome调试工具高级不完整使用指南(实战二)

    3.3 给页面添加测试脚本 在现实的工作中,我们往往会遇到一些问题在线上就会触发然后本地就触发不了的问题.或者是,要给某个元素写一个测试脚本.这个时候如果是浏览器有提供一个添加脚本的功能的话,那么我们 ...

  4. Python爬虫实战二之爬取百度贴吧帖子

    大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...

  5. 转 Python爬虫实战二之爬取百度贴吧帖子

    静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...

  6. Netty 仿QQ聊天室 (实战二)

    Netty 聊天器(百万级流量实战二):仿QQ客户端 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之15 [博客园 总入口 ] 源码IDEA工程获取链接:Java 聊天室 实战 源码 写在 ...

  7. kubernetes实战(二十八):Kubernetes一键式资源管理平台Ratel安装及使用

    1. Ratel是什么? Ratel是一个Kubernetes资源平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Deployment.DaemonSet.Stateful ...

  8. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

  9. miniFTP项目实战二

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

随机推荐

  1. 微信公众号开发之内网映射外网natapp安装(一)

    一,为什么使用natapp 1,在进行微信公众号开发时,我们需要搭建网站,并且随时都有可能修改网站内容进行调试.如果能够将内网ip映射到外网上,将大大方便我们的调试.每次发布只需eclipse运行应用 ...

  2. 实验吧Web-难-头有点大(http头伪造:浏览器、国家、.Net framework版本)

    进去网站显示: 此处告诉我们要干三件事: (1).net framework 版本为9.9 (2)告诉服务器我们的地址为英国 (3)我们访问站点用的是IE 下面我们就抓的包中伪造. 1:.net fr ...

  3. Linix CentOS6.5 下载安装图解(转)

    CentOS 6.5系统镜像有32位和64位两个版本,生产服务器如果是大内存(4G以上内存) 建议安装64位版本CentOS-6.5-x86_64-bin-DVD1.iso 附:CentOS 6.5下 ...

  4. 2020年9大顶级Java框架

    诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件开发的顶级通用编程语言. Java广泛 ...

  5. 201809-2 买菜 Java

    思路: 顺序读入,例如:小H装车的时间段为[1,3],小W装车的时间段为[2,4],重叠部分为[2,3],记在数组times[2]中.最后输出时判断数组times中值大于1的(其实就是2),即为重叠部 ...

  6. POJ - 3657 Haybale Guessing(二分+并查集)

    题意:有N个大小各不相同的点,给定Q个询问,格式为q1,q2,A,表示区间q1~q2的最小值是A,问第一个与之前询问结果出现冲突的询问. 分析: 1.二分询问的标号mid,查询1~mid是否出现询问冲 ...

  7. Q1:Two Sum

    1. Two Sum 官方的链接:1. Two Sum Description : Given an array of integers, return indices of the two numb ...

  8. PyGame快速入门

    pygame 快速入门 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 h ...

  9. c++ 排序 冒泡 插入 选择 快速

    //冒泡 #include <iostream> using namespace std; void bubbleSort(int* list,int index) { ;i--) //i ...

  10. Ribbon使用及其客户端负载均衡实现原理分析

    1.ribbon负载均衡测试 (1)consumer工程添加依赖 <dependency> <groupId>org.springframework.cloud</gro ...