Rsync+inotify数据同步
安装环境
备份服务器端:CentOS7,IP:192.168.1.100
备份客户端:CentOS7,IP:192.168.1.200
服务器端Rsync服务部署
1、安装程序包
# yum –y install rsync
2、创建服务端配置文件
# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
ignore errors = yes
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsyncd.lock [backup]
path = /backup/data #服务器端的存储目录
read only = no
write only = no
hosts allow = 192.168.0.0/16
hosts deny = *
list = false
auth users = server1-200
secrets file = /etc/rsync.password
3、创建rsync用户名
# useradd -M -s /sbin/nologin rsync
4、创建备份目录,修改目录权限
# mkdir /backup
# chown -R rsync /backup
5、创建密码文件,并修改权限
# echo "server1-200:123456" >/etc/rsync.password #注意:server1-200是用户名,123456是密码
# chmod 600 /etc/rsync.password
6、启动服务
# systemctl start rsyncd
注意:启动服务后打开tcp:873端口
客户端配置inotify
1、安装程序包
# yum –y install rsync
2、编译安装inotify
1、下载源码包
inotify-tools-3.14.tar.gz
2、解压:
# tar zxf inotify-tools-3.14.tar.gz
3、编译安装(需要安装gcc)
# cd inotify-tools-3.14
# ./configure --prefix=/usr/local/inotify-tools-3.14
# make & make install
4、创建软连接
# ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools
5、修改环境变量
# echo 'PATH=/usr/local/inotify-tools/bin:$PATH' > /etc/profile.d/inotify.sh
# source /etc/profile.d/inotify.sh
3、客户端自动检测脚本
# vim /script/backup.sh
##################################
#!/bin/bash
SRC='/data/' #客户端需要备份内容的原始路径
DEST='server1-200@192.168.1.100::backup' # 备份到服务器端的位置server1-200是用户名,backup是服务器配置文件中的的模块名
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.password $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
done
4、修改参数
sysctl -w fs.inotify.max_queued_events="" sysctl -w fs.inotify.max_user_watches="" sysctl -w fs.inotify.max_user_instances=""
参数说明:
max_queued_events:
inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确
max_user_watches:
inotifywait命令可以监视文件数量,要同步的文件包含多少目录,可以用:find /home/test -type d | wc -l 统计,必须保证max_user_watches值大于统计结果
max_user_instances:
每个用户创建inotify实例最大值
5、启动服务脚本
# chmod +x /script/backup.sh
# nohup /script/backup.sh &> /dev/null & #放到后台执行
Rsync+inotify数据同步的更多相关文章
- Rsync+inotify 数据同步应用指南
Rsync+Inotify-tools (1):Inotify-tools 只能记录下被监听的目录发生了变化(包括增加.删除.修改),并没有 把具体是哪个文件或者哪个目录发生了变化记录下来: (2): ...
- rsync与inotify 数据同步
发布:thebaby 来源:脚本学堂 [大 中 小] 本文介绍下,在linux系统中,使用rsync与inotify实现数据同步的一个实例,有研究文件同步的朋友可以作个参考.本文转自:ht ...
- 2-3-2 rsync+inotify备份同步数据
RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...
- centos 配置rsync+inotify数据实时同步2
一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...
- centos 配置rsync+inotify数据实时同步
何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...
- 【linux运维】rsync+inotify与sersync+rsync实时数据同步笔记
Rsync(remote sync)远程同步工具,通过rsync可以实现对远程服务器数据的增量备份通过,但rsync自身也有缺陷,同步数据时,rsync采用核心算法对远程服务器的目标文件进行对比,只进 ...
- rsync+inotify实时同步环境部署记录
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...
- rsync+inotify文件同步
rsync+inotify文件同步 在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份 ...
- rsync + inotify 实时同步
1. 前言 2 台 nginx 需要做集群, 静态文件和php文件都在nginx服务器本地. 有三种方案: (1)NFS (2)Rsync + inotify (3)共享存储服务器 第一种:当 nfs ...
随机推荐
- postgreSQL生成建表语句
参考博文:https://blog.csdn.net/xiaofengtoo/article/details/84395199 修复了其函数中的bug,支持生成包含:字段(支持数组类型字段).约束.索 ...
- 使用Vue-MUI轮播图失效问题解决案例(在Vue的update中执行)
我使用的是mui+vue,社区关于轮播图失效的问题也有几个.我这边遇到的一个情况是我把所有的东西都写到plusReady事件中会导致轮播图搞死都不动,按照其他问答解决了vue生命周期等等的问题.提出来 ...
- python3练习100题——020
原题链接:http://www.runoob.com/python/python-exercise-example20.html 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下 ...
- java 多线程实现四种方式解析Thread,Runnable,Callable,ServiceExcutor,Synchronized ,ReentrantLock
1.Thread实现: import java.util.Date; import java.text.SimpleDateFormat; public class MyThread extends ...
- JavaScript DOM–元素操作
获取元素 根据 ID 获取元素 语法: document.getElementById(id) <div id='time'>2020-01-09</div> <scri ...
- Java-POJ1014-Dividing
多重背包问题的特点是物品数量可以大于1但是有限制.状态定义与01背包一致. 多重背包的解法有多种,复杂度也各不相同. 对于物品数Ci较大的数据,可以采取二进制数进行优化(就是这样,别问就是baidu! ...
- AcWing 282. 石子合并
#include <iostream> #include <algorithm> using namespace std; ; int n; int s[N];//前缀和 in ...
- poj 3057(bfs+二分匹配)
题目链接:http://poj.org/problem?id=3057 题目大概意思是有一块区域组成的房间,房间的边缘有门和墙壁,'X'代表墙壁,'D'代表门,房间内部的' . '代表空区域,每个空区 ...
- hdu 1532 Drainage Ditches(网络流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目大意是:农夫约翰要把多个小池塘的水通过池塘间连接的水渠排出去,从池塘1到池塘M最多可以排多少 ...
- Java与Web前端发展前景及薪资对比
Web前端和Java谁的薪资待遇高?关于这个问题,是很多网友都感兴趣的,在各大论坛贴吧上也看到了不少类似的问题. 现在的互联网行业飞速发展,因此有很多小伙伴想要进入IT行业分一杯羹,但是关于学习什么技 ...