加两个需求:
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. Mount error(5):Input/output error on mount

    https://superuser.com/questions/850301/mount-error5input-output-error-on-mount When setting up a sha ...

  2. LIS是什么?

    在之前的随笔中,大概介绍了医疗系统有哪些,是干什么的,是怎么配合医院业务的.现在就开始主要的说一说我的主要工作业务 — LIS了. 前面说到过LIS(LIMS),名称是实验室信息管理系统,大概可以分解 ...

  3. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring中Bean的作用域

    作用域的种类 Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域.Spring3 为 Bean 定义了五种作用域,具体如下. 1)singleton 单例模式,使用 sing ...

  4. Java并发基础类AbstractQueuedSynchronizer的实现原理简介

    1.引子 Lock接口的主要实现类ReentrantLock 内部主要是利用一个Sync类型的成员变量sync来委托Lock锁接口的实现,而Sync继承于AbstractQueuedSynchroni ...

  5. 2020/2/2 PHP代码审计之反序列化

    0x00 序列化与反序列化 序列化: serialize()把对象转换为字节序列的过程称为对象的序列化 反序列化: unserialize()把字节序列恢复为对象的过程称为对象的反序列化 0x01 序 ...

  6. you-get使用

    1.pip install you-get 2.如果出错  查看错误bug    you-get http://www.iqiyi.com/v_19rrnqxz7k.html#vfrm=2-4-0-1 ...

  7. .NET技术-2.0. 操作数据库-Dapper

    .NET技术-2.0. 操作数据库-Dapper 项目参见: 1. 为什么选择Dapper 1) 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco seria ...

  8. 排序算法 python实现

    一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两 ...

  9. TCP_Wrappers简介

    转载自:http://www.cnblogs.com/duzhaoqi/ TCP_Wrappers     简介 TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服 ...

  10. faster rcnn 源码学习-------数据读入及RoIDataLayer相关模块解读

    参考博客:::https://www.cnblogs.com/Dzhen/p/6845852.html 非常全面的解读参考:::https://blog.csdn.net/DaVinciL/artic ...