rsync实战(二)
加两个需求:
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实战(二)的更多相关文章
- 【NFS项目实战二】NFS共享数据的时时同步推送备份
[NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...
- coreseek实战(二):windows下mysql数据源部分配置说明
coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...
- chrome调试工具高级不完整使用指南(实战二)
3.3 给页面添加测试脚本 在现实的工作中,我们往往会遇到一些问题在线上就会触发然后本地就触发不了的问题.或者是,要给某个元素写一个测试脚本.这个时候如果是浏览器有提供一个添加脚本的功能的话,那么我们 ...
- Python爬虫实战二之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...
- 转 Python爬虫实战二之爬取百度贴吧帖子
静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...
- Netty 仿QQ聊天室 (实战二)
Netty 聊天器(百万级流量实战二):仿QQ客户端 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之15 [博客园 总入口 ] 源码IDEA工程获取链接:Java 聊天室 实战 源码 写在 ...
- kubernetes实战(二十八):Kubernetes一键式资源管理平台Ratel安装及使用
1. Ratel是什么? Ratel是一个Kubernetes资源平台,基于管理Kubernetes的资源开发,可以管理Kubernetes的Deployment.DaemonSet.Stateful ...
- SpringSecurity权限管理系统实战—二、日志、接口文档等实现
系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...
- miniFTP项目实战二
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...
随机推荐
- SAP HANA学习笔记
SAP HANA:High-Performance Analytic ApplianceSAP HANA XSC:Extended Application Services Classic(SAP推出 ...
- Python调用c++可执行程序
1.c++编译程序 #include <iostream> using namespace std; int test() { , b = ; return a+b; } int main ...
- CodeForces - 748B Santa Claus and Keyboard Check
题意:给定两个字符串a和b,问有多少种不同的字母组合对,使得将这些字母对替换字符串b后,可以变成字符串a.注意字母对彼此各不相同. 分析:vis[u]记录与u可形成关系的字母,若u与v不同,则形成字母 ...
- NtQueryObject 获得内核对象使用计数
一个内核对象有两个计数器:一个是句柄计数,句柄是给用户态用的:另一个是指针计数,也叫引用计数,因为核心态也常常用到内核对象,为了方便,在核心态的代码用指针直接访问对象,所以Object Manag ...
- 基于python的小波阈值去噪算法
https://blog.csdn.net/alwaystry/article/details/52756051 发表于 2018-01-10 16:32:17 嵌入式设计应用 +关注 小波图像去噪原 ...
- @Autowired注解与@Resource注解的区别(详细)
相信对现在Java码农来说,@Autowired跟@Resource并不陌生,二者都可以自动注入,但是两者的区别很多时候并没有被注意到. 一.注解的出处 @Autowired是Spring提供的注解, ...
- 使用Dom4j生成xml文件(utf-8编码)
xml文件内容: <?xml version="1.0" encoding="UTF-8"?> <result> <code> ...
- zabbix中文乱码解决
问题现象: zabbix字体修改成中文后监控显示乱码 原因: 该问题是由于zabbix默认使用的是“DejaVuSans.ttf”(zabbix3.2.7默认使用的是“graphfont.ttf”), ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL WHERE 子句
MySQL 表中使用 SQL SELECT 语句来读取数据. 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中. 语法 以下是 SQL SELECT 语句使用 WHERE ...
- HDU 2094产生冠军(set思维题)
Problem Description 有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛.球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能 ...