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 ...
随机推荐
- JAVA 注解教程(一)简单介绍
相关网址 https://blog.csdn.net/briblue/article/details/73824058 --- 已经整理成笔记 https://blog.csdn.net/bao199 ...
- 工具系列 | git checkout 可替换命令 git switch 和 git restore
前言 git checkout 这个命令承担了太多职责,既被用来切换分支,又被用来恢复工作区文件,对用户造成了很大的认知负担. Git社区发布了Git的新版本2.23.在该版本中,有一个特性非常引人瞩 ...
- Linux安装MATLAB2016a
一.准备工具 matlab2016a的镜像文件和破解文件(链接: https://pan.baidu.com/s/1cxtlOM 密码: cj2u) Linux系统,我用的是deepin15.4,和一 ...
- LVS-DR模式搭建
出于对架构的兴趣,一有时间我就会了解一下如何搭建一个高并发,高可用,可扩展的服务器运行环境.LVS-DR究竟现在的企业运用频率有多高其实我也不清楚,本文是下班之余断断续续研究搭建笔录,并且仅仅在vir ...
- 开发笔记—钉钉服务商应用isv开发,从应用配置,到获取客户企业通讯录
以第三方企业微应用为例 在第三方企业微应用应用时,比较底层的需求,就是应用需要获取客户企业的通讯录,即部门/员工的数据.本人整理以下几个关键数据,供大家开发参考. 新建第三方微应用时,能拿到这些初始数 ...
- 【C语言】输入三个正整数a,b,c,求最大值,要求定义一个计算最大值的函数max(a,b),返回a,b的值
#include<stdio.h> int max(int a, int b)/*定义函数*/ { if (a > b) return a; else return b; } int ...
- 阿里云CentOS7.2把默认语言修改成中文
转载TimeK 最后发布于2017-04-19 14:43:35 阅读数 7578 收藏 展开 我是一个刚接触centos不久的新人,在这个问题上面也是找了好久的答案,百度百科和问答上面的都大同小异 ...
- Python偶斐波那契数
斐波那契数列中的每一项都是前两项的和.由1和2开始生成的斐波那契数列前10项为 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, … 考虑该斐波那契数列中不超过四百万的项,求其中为 ...
- 对C#单例模式的理解
2018年11月6日 小雨 一.单例模式的定义 确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例,是一种对象创建型模式,有如下3个要点: 只能有一个实例 必须是自行创建这个 ...
- Java中的门面设计模式及如何用代码实现
门面设计模式又叫外观设计模式,其核心思想正如其字面意思,向用户提供一个门户,用户只需要访问这个门户来获取他们想要的数据,无需管理这个门户内部的构成,也无需知道里面的运行流程等等,对于开发者来说,使用门 ...