rsync+inotify实时数据同步

简介:

1.yum 安装rsync

备份服务器端:

yum install -y rsync

vi /etc/xinetd.d/rsync

wKioL1hjsUjRX-9YAABbRJmQ7aE848.png


yum install -y xinet*

/etc/init.d/xinetd start


wKioL1hjsXqxdNZjAAAWFWNhYp0929.png

以上是安装服务,很多情况只用这个命令就可以了,不需要安装这个服务


 vim /etc/rsyncd.conf      //rsyncd.conf不存在,需要自己手动建  


port=873

log file=/var/log/rsync.log  #指定日志

pid file=/var/run/rsyncd.pid  #指定pid


[test]    #为模块名,自定义

path=/root/rsync  # 指定该模块对应在哪个目录下

use chroot=true #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle

max connections=4  # 指定最大可以连接的客户端数

read only=no  //yes指定客户端对该共享目录只有只读权限只能下载,no有读写和上传权限,共享目录必须有W写权限才能上传 

list=true  #是否可以列出模块名

uid=victor #以哪个用户的身份来传输

gid=victor  #以哪个组的身份来传输

auth users=victor #指定验证用户名,可以不设置

secrets file=/etc/rsyncd.passwd #指定密码文件,如果设定验证用户,这一项必须设置

hosts allow=104.193.95.0/24



hosts allow = 104.193.95.63  (也可以写一个IP,不用写用户名跟密码,) 

mkdir -p /root/rsync

chown victor:victor /root/rsync

/etc/init.d/xinetd restart

rsync --daemon 

vi /etc/rsyncd.passwd

victor:SX3edc!23

chmod 600 /etc/rsyncd.passwd


主服务器:

vi /etc/rsyncd.passwd

SX3edc!23

chmod 600 /etc/rsyncd.passwd

rsync -avP --password-file=/etc/rsyncd.passwd /etc/passwd victor@103.242.109.12::test

wKiom1hkxlqh467CAABSe-fXua4181.png

错误:

用户密码错误

检查主服务器密码文件和从服务器密码文件。

主服务器密码文件 /etc/rsyncd.secrets 格式为: username:password
从服务器密码文件 password.rsync 格式为:password

主服务器:

2.inotify-tools安装

inotify-tools 是为linux下inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。 inotify-tools是用c编写的,除了要求内核支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。如果列出的内核版本不低于 2.6.13,系统就支持 inotify。还可以检查机器的 /usr/include/sys/inotify.h 文件。如果它存在,表明内核支持 inotify。

下载地址:

1.wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

2.https://sourceforge.net/projects/inotify-tools/files/latest/download 打开这个网址,选择以下下载:

wKioL1hkzTuj0NxSAAAcFWBdCGw932.png

[root@localhost  ~]# ll /proc/sys/fs/inotify

-rw-r--r-- 1 root root 0 4月  29 08:53 max_queued_events  表示监控事件队列  (长度)

-rw-r--r-- 1 root root 0 4月  29 08:53 max_user_instances  表示最多监控实例数

-rw-r--r-- 1 root root 0 4月  29 08:53 max_user_watches    表示每个实例最多监控文件数


wKioL1hkze_yc3cPAAAu9EoL1sU192.png


inotify修改数值

vi /etc/sysctl.conf

wKiom1hkzo3Ru4z0AAA-ewxqGKw298.png


在最后

sysctl -p生效


tar xzf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14

 ./configure --prefix=/usr/local/inotify-tools

wKioL1hk0GmxeObMAAAQVW_k2VU965.png

以下就是安装完成了。

inotifywait 实时监控/home的所有事件(包括文件的访问,写入,修改,删除等)

inotifywatch统计文件系统的事件

wKioL1hmUFTjvi7TAAAR2nfqlKw082.png



例:rsync+inotify脚本

 


host=103.242.109.12  #rsync服务器IP
src=/victor/       #本地监控的目录
dst1=test         #rsync服务器上模块名
user1=victor       #rsync服务器上的虚拟用户


wKiom1hmUtPxPAYhAABRIN3Fckk318.png

#!/bin/bash
host=103.242.109.12
src=/victor/
dst1=test
user1=victor
/usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src\
| while read files
do
/usr/bin/rsync -avPz --delete --password-file\=/etc/rsyncd.passwd  $src $user1@$host::$dst1
 echo "${files}was rsynced" >>/tmp/rsync.log 2>&1
done


\自动换行, \=转义

 /root/ifyrsync.sh &

将此脚本加入系统自启动文件:

echo /root/ifyrsync.sh &”>>/etc/rc.local


在inotify服务器的/victor/下新建目录,看rsync服务器上的test下是否会同步



错误信息:

1.inotify服务器上:

syntax or usage error (code 1) at main.c(1238) [sender=3.0.6]

这个一般是服务器端的目录不存在或无权限。我遇到的问题就是inotify手写的脚本有问题,后来复制以前的脚本就解决了。


2.rsync服务器的日志错误:

wKioL1hncWiBzcsXAADTjVzDbtQ437.png



本文转自 15816815732 51CTO博客,原文链接:http://blog.51cto.com/68686789/1887088

相关文章
|
10月前
|
算法 Linux
Linux系统【文件传输】rsync命令 – 远程数据同步工具
rsync命令来自于英文词组“remote sync”的缩写,其功能是用于远程数据同步。rsync命令能够基于网络(含局域网和互联网)快速的实现多台主机间的文件同步工作,并与scp或ftp发送完整文件不同,rsync有独立的文件内容差异算法,会在传送前对两个文件进行比较,只传送两者内容间的差异部分,因此速度更快。
151 2
|
12月前
|
安全 Unix Linux
【Linux网络服务】Rsync数据同步
【Linux网络服务】Rsync数据同步
|
监控 应用服务中间件 开发工具
Centos7.4 搭建rsync+inotify 实现数据同步
简介 起因 因公司全部迁云,配置ECS时需要将Web集群之间配置 数据同步 以及 会话保持,接下来配置在 linux Centos7.4版本的系统操作。 优点 使用rsync工具和inotify机制相结合,可以实现触发式部署(实时同步),只要原始(主)位置的文档发生变幻,则立即启用增量推送操作,否则处于静态等待状态,这样以来,就避免了分布式集群部署过程复杂的问题。
1798 0
|
监控 应用服务中间件 开发工具
Centos7.4 搭建rsync+inotify 实现数据同步
简介 起因 因公司全部迁云,配置ECS时需要将Web集群之间配置 数据同步 以及 会话保持,接下来配置在 linux Centos7.4版本的系统操作。 优点 使用rsync工具和inotify机制相结合,可以实现触发式部署(实时同步),只要原始(主)位置的文档发生变幻,则立即启用增量推送操作,否则处于静态等待状态,这样以来,就避免了分布式集群部署过程复杂的问题。
1226 0
|
应用服务中间件 nginx Perl
|
数据安全/隐私保护 存储 安全
|
8天前
|
DataWorks Shell 对象存储
DataWorks产品使用合集之在 DataWorks 中,有一个 MySQL 数据表,数据量非常大且数据会不断更新将这些数据同步到 DataWorks如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 3

热门文章

最新文章