Inotify+rsync同步两主机之间数据

本文介绍rysnc与inotify同步两个主机的目录,使用RHEL6.6版本。

rsync既remote sync,是UNIX类系统文件同步和数据传输工具,能实现客户端和远程服务器端的文件同步,它采用的是rsync算法,它比较传输源文件和目标文件有变更的部分进行传送。

rsync的一些特性

1>增量数据同步,传输效率搞

2>镜像保存整个目录树和文件系统

3>保留文件属性,时间戳等。

4>支持加密传输

inotify是一种高效率、细粒度、异步的文件系统监控机制。它监控文件系统,并且及时向第三方软件(如rsync)发出相关的删、读、写操作等。linux内核2.6.13版本开始支持inotify。利用这个内核接口,第三方软件如inotify-tools可以监控文件系统下文件的变化情况。

案例演示:

监控192.168.1.7的/var/www/html目录,当目录内容有变化,立即将其内容同步到192.168.1.8的/var/www/html目录。

主机:192.168.1.8

系统默认已安装rsync,不需手动安装。但没有提供配置文件,需手动建立。

编辑/etc/rsyncd.conf

uid=nobody
gid=nobody
use chroot = no
max connections =10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
 
[xiaoming]
path = /var/www/html/
comment = xiaoming file
ignore errors
read only = no
write only = no
host allow = 192.168.1.7
host deny = *
list = false
uid = root
gid = root
auth user = xiaobai
secrets file = /etc/server.pass
# useradd xiaobai
# echo 123456 | passwd xiaobai --stdin

启动rsync守护进程

# rysnc --daemon

主机:192.168.1.7

安装inotify-tools

# yum install inotify-tools

查看生成了那些文件

# rpm -ql inotify-tools
/usr/bin/inotifywait
/usr/bin/inotifywatch
/usr/lib64/libinotifytools.so.0
/usr/lib64/libinotifytools.so.0.4.1
/usr/share/doc/inotify-tools-3.14
......

inotifywait使用内核inotify接口等待文件的变化,时候使用shell脚本来实现。

-m,--monitor 始终保持事件的坚听,默认是在一个事件发生后退出。

-r ,--recursive 递归监控目录

-q,--quiet 在屏幕显示监控事件

-e,--event 制定要监控的事件,如modify、delete、create、access、attrib等

inotifywatch收集被监控的文件系统统计数据。

编辑脚本/root/rsync.sh

#!/bin/bash
host=192.168.1.8
src=/var/www/html
user=xiaobai
dst=xiaoming
/usr/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 -vzrtopg --delete --progress--password-file=/etc/server.pass $src [email protected]$host::$dst
       echo "${files} was rsynced" >> /tmp/rsync.log2>&1
       done
编辑/etc/server.pass
123456
# chmod 600 /etc/server.pass

放入后台执行

# bash rsync.sh &

此时,在192.168.1.7主机/var/www/html目录变更文件,192.168.1.8会立即同步。

时间: 2024-08-26 03:43:19

Inotify+rsync同步两主机之间数据的相关文章

sersync+inotify+rsync同步不同主机之间数据

保持192.168.1.5和192.168.1.6中/www/mingxiao数据相同 这里提供两种实现方式,请参考我的另一篇博文:http://mingxiao.blog.51cto.com/8124243/1641385 进192.168.1.5 安装sersync和inotify # yum install inotify-tools # tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/sersync #

inotify+rsync同步

rsync:一款快速增量备份工具 Remote Sync,实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync rsync 包括如下的一些特性: 能更新整个目录和树和文件系统: 有选择性的保持符号链链.硬链接.文件属于.权限.设备以及时间等: 对于安装来说,无任何特殊权限要求: 对于多个文件来说,内部流水线减少文件等待的延时: 能用rsh.ssh 或直接端口做为传输入端口: 支持匿名rsync 同步文件,是理想的镜像工具: inotif

rsync同步两台服务器

需求:两台服务器(A.B),在服务器A上存放着大量的图片,需要在每天夜里三点同步到服务器B,源目录和目的目录都是/image 启用程序:rsync 服务器A上的配置: 1./etc/rsyncd.conf uid = nobody gid = nobody use chroot = no max connectionts = 6 read only = yes hosts allow = 192.168.95.0/24 pid file = /var/run/rsyncd.pid lock fi

rsync同步操作,inotify实时同步,Cobbler平台装机

本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 将目录 /boot 同步到目录 /todir 下 将目录 /boot 下的文档同步到目录 /todir 下 在目录 /boot 下新增文件 a.txt,删除 /todir 下的子目录 grub2,再次同步使 /todir 与 /boot 一致 验证 -a.-n.-v.--delete 选项的含义 1.2 方案 本地同步操作: rsync [选项...] 本地目录1 本地目录2 rsync [选项...] 本地目录1/ 本地目录2

rsync同步 Cobbler装机平台部署

Top NSD SERVICES DAY05 案例1:rsync基本用法 案例2:rsync+SSH同步 案例3:使用inotifywait工具 案例4:配置Web镜像同步 案例5:配置Cobbler装机平台 1 案例1:rsync基本用法 1.1 问题 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 将目录 /boot 同步到目录 /todir 下 将目录 /boot 下的文档同步到目录 /todir 下 在目录 /boot 下新增文件 a.txt,删除 /todir 下的子

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存

inotify+rsync数据同步

安装常用工具: yum install tree nmap sysstat dos2unix lrzsz -y 设置两台机器主机名 hostname inotify hostname rsync 这里测试,就直接hostname修改了,要使永久生效,还需要修改 /etc/network/sysconfig和/etc/hosts文件 rsync有三种模式: 1.单个主机的本地数据传输(此事类似于cp命令) 例如:rsync -avz /etc/hosts /home/ 2.借助rpc.ssh等通道

Linux系统实时数据同步inotify+rsync

一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Linux内核版本必须是大于2.6.13,在这之前的内核都没有这个功能.我们可以利用inotify去监控我们要监控的资源,当资源发生变化时,我们扑捉它的事件,从而触发同步数据等操作. 二.inotify软件介绍 inotify是内核的一个功能,众所周知内核的功能我们必须要配合工具才能使用,通常情况下用户

<两台主机之间日志的同步>

首先要知道两台主机之间同步文件udp虽然安全性不高,但是它的同步速率远远高于tcp.这点是不可否认的. 我们以简单的为例: 服务端: 允许别的主机可以把日志同步到自己的主机上来. # vim /etc/rsyslog.conf $ModLoad imudp  //开启udp协议,添加udp模块. $UDPServerRun 514 /etc/init.d/rsyslog restart 重启使配置生效 # tail -f /var/log/messages  //动态监控日志 客户端 把日志往哪