1、安装inotify-tools 工具
为能在shell下使用inotify特性,需要安装inotify-tools
下载地址:http://inotify-tools.sourceforge.net/
编译安装
./configure
make
make install
2、编写自动监听脚本
shell 写道
#!/bin/bash
###########################
# 在这里配置本地文件夹,目标host,目标的rsync_module。rsync_module在同步机器的/etc/rsyncd.conf文件中配置
# 逗号前后不要有空格
#sync[0]='/tongbu,192.168.61.113,test' # localdir,host,rsync_module
#sync[0]='/tongbu,192.168.61.195,test' # localdir,host,rsync_module
sync[0]='/root,192.168.1.3,test'
#sync[1]='/tongbu,192.168.61.195,test1'
###########################
for item in ${sync[@]}; do
dir=`echo $item | awk -F"," '{print $1}'`
host=`echo $item | awk -F"," '{print $2}'`
module=`echo $item | awk -F"," '{print $3}'`
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' --event CLOSE_WRITE,create,move,delete $dir | while read date time file event
do
#echo $event'-'$file
case $event in
MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
#cmd="rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir root@$host::$module"
cmd="rsync -vzrtopg --progress --delete $dir @$host::$module"
#echo $cmd
$cmd
fi
;;
MOVED_FROM|MOVED_FROM,ISDIR|DELETE|DELETE,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
#cmd="rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir root@$host::$module"
cmd="rsync -vzrtopg --progress --delete $dir @$host::$module"
#cho $cmd
$cmd
fi
;;
esac
done &
done
###########################
# 在这里配置本地文件夹,目标host,目标的rsync_module。rsync_module在同步机器的/etc/rsyncd.conf文件中配置
# 逗号前后不要有空格
#sync[0]='/tongbu,192.168.61.113,test' # localdir,host,rsync_module
#sync[0]='/tongbu,192.168.61.195,test' # localdir,host,rsync_module
sync[0]='/root,192.168.1.3,test'
#sync[1]='/tongbu,192.168.61.195,test1'
###########################
for item in ${sync[@]}; do
dir=`echo $item | awk -F"," '{print $1}'`
host=`echo $item | awk -F"," '{print $2}'`
module=`echo $item | awk -F"," '{print $3}'`
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' --event CLOSE_WRITE,create,move,delete $dir | while read date time file event
do
#echo $event'-'$file
case $event in
MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
#cmd="rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir root@$host::$module"
cmd="rsync -vzrtopg --progress --delete $dir @$host::$module"
#echo $cmd
$cmd
fi
;;
MOVED_FROM|MOVED_FROM,ISDIR|DELETE|DELETE,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
#cmd="rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir root@$host::$module"
cmd="rsync -vzrtopg --progress --delete $dir @$host::$module"
#cho $cmd
$cmd
fi
;;
esac
done &
done
3、将脚本加入启动项:
添加到rc.local中,可在系统启动时,启动监听。
相关推荐
`inotify-tools` 和 `rsync` 是两个强大的开源工具,用于实时监控文件系统变动并同步数据。本篇文章将详细介绍如何结合这两个工具在Linux环境中实现高效的数据同步。 `inotify-tools` 是一组C语言编写的命令行工具...
inotify-tools与`rsync`、`nfs`等工具结合,可以实现高效的数据同步、备份和监控。例如,当监控目录有新文件生成时,可以立即触发`rsync`进行备份: ```bash inotifywait -m /source/directory -e close_write | ...
本文将深入探讨如何利用inotify-tools与rsync相结合,实现实时、高效的多服务器文件同步。 首先,我们需要了解inotify-tools的核心组件——inotifywait和inotifywatch。inotifywait允许程序等待特定文件系统事件的...
【inotify-tools】是Linux内核2.6版本后引入的一种文件系统监控工具,它能够实时监测文件系统中的各种变化,如创建、修改、删除、移动等事件。这对于需要实时同步文件的应用场景非常有用,例如在分布式系统或者备份...
本文将深入探讨`inotify-tools`和Rsync如何共同实现Linux文件系统的实时同步。 `inotify-tools`是Linux下的一个开源软件包,版本为3.14,其主要包含`inotifywait`和`inotifywatch`两个命令行工具。`inotifywait`...
`inotify-tools`是一个非常实用的工具集,它提供了对Linux内核`inotify`接口的用户空间访问,使得我们可以实时监测文件系统事件。这个软件包包括了`inotifywait`和`inotifywatch`两个主要的命令行工具,它们为开发者...
"Rsync+sersync+inotify-tools"这个组合提供了一套高效且可靠的实时文件同步解决方案。接下来,我们将深入探讨这三个工具各自的功能以及它们如何协同工作。 **Rsync** Rsync(Remote Sync)是一款强大的、快速的...
Linux内网离线用rsync和inotify-tools实现实时的文件夹文件单向同步和双向同步
在Linux操作系统中,`inotify-...总的来说,`inotify-tools`和`rsync`的结合使用是Linux环境下实现高效、实时文件同步的重要技术。通过合理配置,它们可以提供可靠的数据保护和一致性保障,同时降低系统资源的消耗。
### rsync + inotify-tools + SSH 实现触发式远程实时同步 #### 一、概述 在数据同步领域,实现高效且自动化的文件同步是至关重要的。对于需要在两台或多台服务器之间保持文件同步的场景,传统的定时同步方法可能...
将rsync与inotify-tools结合,可以实现非常强大的实时文件同步功能。例如,当在一个目录中创建、修改或删除文件时,inotify-tools可以检测到这些变化并立即触发rsync执行同步操作。这种实时同步的应用场景很广泛,如...
总的来说,rsync3.0.9和inotify-tools3.1.14是Linux系统管理的重要工具,它们提供了高效、灵活的文件同步和监控能力。结合使用这两者,可以构建出一套高效、实时的文件同步解决方案,为企业的运维工作带来便利。
inotify可以监控文件系统中的变化,然后触发rsync同步命令,实现实时同步。 4. 配置rsync服务器 在rsync服务器端,我们需要编辑守护进程配置文件/etc/rsyncd.conf,设置工作用户、超时时间、进程号文件、日志文件...
结合rsync和inotify-tools,可以构建实时文件同步系统。当inotify检测到文件或目录有变化时,可以触发rsync进行同步操作。这样,任何在源目录中的改动都会立即被复制到目标目录,确保数据的一致性。 以下是一个基本...
rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...
### 实时同步技术详解:利用Rsync与Inotify在Linux环境下构建高效同步方案 #### 一、概述 在现代IT环境中,数据同步是一项至关重要的任务,尤其是在多服务器架构下,保持数据的一致性和实时性对于业务连续性至关...