rsync+inotify-tools实时备份脚本
1.1 实时备份
1.需求分析:
为什么要实时复制
因为nfs是单点非常的不安全 而通过定时任务备份会造成数据丢失 这是就需要需要实时备份
2实时方案
1).搭建好服务端backup与客户端nfs的rsync服务,使可以备份数据
a.服务端backup配置文件:
[root@rsync-backup ~]# cat /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
secrets file = /etc/rsync.password
[backup]
path = /rsync_backup
auth users = rsync_backup
创建校验文件 并将权限改为600
[root@rsync-backup ~]# cat /etc/rsync.password
rsync_backup:ms
创建用户 rsync 创建目录/ rsync_backup 并将属主属组改为rsync
b.客户端nfs
创建校验文件 并将权限改为600
[root@nfs01 /backup]# cat /etc/rsync.password
ms
创建要备份的目录/backup
2.)在nfs上搭好inotify-tools 使其可以监控事件
上文已将其安装,这里测试命令
端口1监控
[root@nfs01 /backup]# inotifywait --format '%w%f' -rmqe create,delete,close_write /backup/
/backup/a.txt
端口2测试
[root@nfs01 /backup]# rm -f a.txt
3)编写脚本 使当所监控的文件夹有事件发生时 立即备份
#!/bin/bash
inotifywait --format '%w%f' -rmqe create,delete,close_write /backup/|\
while read line
do
rsync -az /backup/ rsync_backup@backup::backup --password-file=/etc/rsync.password
done
检测有效
4)脚本的优化
#!/bin/bash
inotifywait --format '%w%f' -rmqe create,delete,close_write /backup/|\
while read line
do
if [ -e $line ];then
rsync -az $line rsync_backup@backup::backup --password-file=/etc/rsync.password
fi
cd /backup/ && rsync -az /backup/ --delete rsync_backup@backup::backup --password-file=/etc/rsync.password
done
if 判断如果文件存在 将新创建的文件备份到backup服务器上
如果不存在 无差异备份一下
额外补充
watch ls /rsync_backup/ 每个2秒执行一下ls命令
将脚本放入后台执行[root@nfs01 /server/scripts]# sh nfs-backup.sh &
[1] 9137
rsync+inotify-tools实时备份脚本的更多相关文章
- 搭建rsync+inotify实现实时备份
一.环境搭建说明 系统环境 CentOS7.5 备份节点 主机名:backup01 IP地址:172.16.2.41 数据节点 主机名:nfs-master IP地址:172.16.2.31 二.在备 ...
- rsync + inotify 数据实时同步
一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...
- linux rsync +inotify 实现 实时同步
前言: rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...
- rsync+inotify实现实时同步案例--转
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- rsync简介与rsync+inotify配置实时同步数据
rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...
- centos 配置rsync+inotify数据实时同步2
一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...
- centos 配置rsync+inotify数据实时同步
何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...
- rsync+inotify实现实时同步案例
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- Rsync+inotify实现实时同步
1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...
随机推荐
- Redis在springboot项目的使用
一.在pom.xml配置redis依赖 <!-- redis客户端代码 --> <dependency> <groupId>org.springframework. ...
- 利用虚拟化环境虚拟nvme盘
前情介绍 SPDK SPDK的全称为Storage Performance Development Kit ,是Intel发起的一个开源驱动项目,这个是一个开发套件,可以让应用程序在用户态去访问存储资 ...
- Python网络编程_抓取百度首页代码(注释详细)
1 #coding=utf-8 2 #网络编程 3 4 #客户端建立socket套接字 5 #引入socket模块 6 import socket 7 #实例化一个套接字,2个参数分别是: IPV4. ...
- 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
目录 第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 ...
- php7的Opcache getshell
OPcache基础 OPcache是一种通过解析的PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从而大大提高了PHP的执行 ...
- 去年去阿里面试,面试官居然问我Java类和对象,我是这样回答的!
1.谈谈你对Java面向对象的理解? 面向对象就是把构成问题的事务分解成一个个对象,建立对象的目的不是一个步骤,而是为了描述一个事务在解决问题中的行为.类是面向对象的一个重要概念,类是很多个具有相同属 ...
- 无论PC还是Mac,都能畅快地使用移动硬盘
如果你拥有一台Mac设备,总会遇到尴尬的那一刻--你在Mac上用得好好的移动硬盘怎么都不能被PC识别到.又或者你朋友在PC上用得好好的移动硬盘,连上你的Mac后,Mac里的文件死活就是拷贝不进移动硬盘 ...
- 苹果电脑下载器Folx有没有自动下载功能
苹果电脑下载器Folx提供了多项自动化任务功能,供用户更好地利用电脑的空闲时间,减少自己直接参与下载的时间,从而提升下载效率. 接下来,小编将重点介绍Folx自动化工作中的任务完成后的自动化工作.自动 ...
- 「LOJ 539」「LibreOJ NOIP Round #1」旅游路线
description 题面较长,这里给出题目链接 solution 考虑预处理出\(f[i][j]\)表示在第\(i\)个点加满油后,从第\(i\)个点出发,至多消耗\(j\)元钱走过的最大路程,那 ...
- python中eval()和json.loads的区别
一.最近在写接口测试脚本时,发现当读取Excel用例时,有时候要用eval,有时候又要用json.loads,不知道区别,只能换一下就可以用了,不知道其中的原理,特地百度了下.于是就记录了下,以便后续 ...