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可以监控文件系统中添加.删除. ...
随机推荐
- cephfs删除报nospace的问题
ceph Vol 45 Issue 2 CephFS: No space left on device After upgrading to 10.2.3 we frequently see mess ...
- javascript——什么是解释型语言?
摘要:<JavaScript基础与案例开发详解>(张孝祥,徐明华)第2章JavaScript环境,本章力求让读者了解JavaScript的开发环境.运行环境,和开发中会遇见的一些问题,做好 ...
- Camtasia中对录制视频进行编辑——行为
小视频的逐渐兴起,让我们的生活变得多姿多彩,同时,也造就了一批新媒体的创业者还有越来越多的网红,这不禁使我们也想加入他们的行列.但是问题来了,拍摄视频后最重要的是对视频进行剪辑,没有一款经济适用的软件 ...
- 「CSP-S 2020」儒略日
description luogu loj(暂无数据) solution 这道题作为T1,对选手们仔细看清题目的好习惯,以及不为2h调试.5k代码而心态爆炸的重要能力进行了较好的锻炼, 特别准备的只有 ...
- 给git日志添加好看的样式
windows添加如下命令,让入了全局环境里 git config --global alias.lg "log --color --graph --pretty=format:'%Cred ...
- SpringSecurity之整合JWT
SpringSecurity之整合JWT 目录 SpringSecurity之整合JWT 1. 写在前面的话 2. JWT依赖以及工具类的编写 3. JWT过滤器 4. 登录成功结果处理器 5. Sp ...
- CSP-SJX2019 解题报告
T1 日期 日高于 \(31\) 或等于 \(00\) 的要修改 \(1\) 次. 月高于 \(12\) 或等于 \(00\) 的要修改 \(1\) 次. 月等于 \(02\) 且日大于 \(28\) ...
- 测试中:ANR是什么
1.ANR 的定义 ANR(Application Not Responding),用户可以选择"等待"而让程序继续运行,也可以选择"强制关闭".所以一个流畅的 ...
- Oracle11gR2 sqlplus中可以执行上键查询backspace删除
1.1 sqlplus中可以执行上键查询backspace删除 1.1.1 上键查询 方法1: 安装源-导入key-安装rpm包-进入配置文件修改参数 rpm -ivh http://download ...
- C语言中Linux环境下编译与链接
编写一个简单的 hello.c 文件,以此为例. 1.编译并链接一个完全包含于一个源文件的C程序. gcc hello.c gcc -Wall hello.c gcc -o hello hello.c ...