`
baobeituping
  • 浏览: 1068600 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Rsync+inotify做文件同步

阅读更多

Rsync+inotify做文件同步

 

 

服务端配置

1.到http://rsync.samba.org下载最新版本3.0.7

2.解压缩

3.编译

sh#  ./configure –prefix=/usr/local/rsync && make && make install


4.配置/etc/rsyncd.conf

uid=root
gid=root
hosts allow=192.168.61.113,192.168.61.195 #允许访问的主机
#hosts deny=0.0.0.0/32
use chroot=no
max connections=10
secrets file=/etc/rsyncd.pas #用户名密码文件
motd file=/etc/rsyncd.motd
pid file =/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log

[test] #模块1
path=/tongbu1
comment=rsync files
ignore errors
read only=no
list=no
auth users=root
#secrets file=/etc/rsyncd.pas
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
lock file=/var/run/rsyncd.lock


[test1] #模块2
path=/tongbu2
comment=rsync files
ignore errors
read only=no
list=no
auth users=root
#secrets file=/etc/rsyncd.pas
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
lock file=/var/run/rsyncd.lock

...#可以配置更多的模块

5.配置/etc/rsyncd.pas
root:000000
格式为:用户名:密码,可以设置多个用户密码

6.修改rsyncd.pas的文件属性

sh#  chmod 0600 /etc/rsyncd.pas 

7.启动rsync,默认端口为873

sh# /usr/local/rsync/bin/rsync --daemon --port=873

客户端配置

1.配置/etc/rsyncd_clinet.pas
000000
格式为:密码

2.修改rsyncd_client.pas的文件属性

sh#  chmod 0600 /etc/rsyncd.pas 

配置自动同步inotify

为能在shell下使用inotify特性,需要安装inotify-tools
下载地址:http://inotify-tools.sourceforge.net/
编译安装
./configure
make
make install
完成后,注意查看manpage,man inotify 、 man inotifywait
inotifywait 仅执行阻塞,等待 inotify 事件。您可以监控任何一组文件和目录,或监控整个目录树(目录、子目录、子目录的子目录等等)。在 shell 脚本中使用 inotifywait。
inotifywatch 收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次。

gedit /opt/inotify-rsync.sh

#!/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]='/tongbu,192.168.61.195,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 [mailto:root@$host::$module root@$host::$module]"
     cmd="rsync -avz --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir [mailto:root@$host::$module root@$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 [mailto:root@$host::$module root@$host::$module]"
     cmd="rsync -avz --progress --delete --password-file=/etc/rsyncd-clinet.pass $dir [mailto:root@$host::$module root@$host::$module]"
      echo $cmd
     $cmd
    fi
    ;;
  esac
 done &

done 

测试

1.启动客户端服务:

sh#  /usr/local/rsync/bin/rsync --daemon --port=873  

2.启动监控脚本,此脚本支持多目录多服务器监控

sh#  ./inotify-rsync.sh 

    3.增加文件

sh#  touch happy.txt 

4.查看/tongbu1、/tongbu2中文件变化

<!-- end content -->
分享到:
评论

相关推荐

    rsync+inotify实现服务器之间文件实时同步

    rsync是一种文件同步工具,可以实现触发式的文件同步,但使用crontab守护进程方式进行触发同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决...

    CentOS下用rsync+inotify实现实时同步

    rsync是一种快速、可靠、安全的文件同步工具。它可以在本地或远程主机之间同步文件,具有高效、可靠、安全等特点。rsync使用了 delta encoding 算法,可以减少数据传输量,提高同步速度。 2. inotify简介 inotify...

    rsync+inotify.zip

    在实际应用中,可以编写脚本或使用现成的工具(如incron或watchdog)来集成inotify和rsync,创建一个自动化的文件同步系统。这样,任何对源目录的修改都会立即被检测到,并同步到目标位置,提高了工作效率,减少了...

    rsync+inotify 实时远程同步

    Rsync 是一个功能强大且广泛使用的文件同步工具,它可以快速、安全、可靠地同步文件。在服务器之间同步文件时,Rsync 是一个不二之选。Inotify 是一个 Linux 内核提供的文件系统事件监控机制,它可以实时监控文件...

    rsync+inotify实现服务器之间目录文件实时同步

    **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,rsync 提供了更高的安全性、更快的速度以及支持增量备份等功能,适用于对实时性要求...

    rsync+inotify 文件同步自动配置安装

    rsync+inotify 文件同步自动配置安装shell,包含inotify3.14的源包,自动安装后可以实现/etc/init.d/rsyncd start|stop 脚本自动复制,在启动关闭时候同时启动关闭inotify监控shell脚本,请使用时认真阅读安装脚本,...

    Centos6.3下rsync+inotify安装配置

    在 CentOS 6.3 环境中,配置文件系统实时同步更新,我们可以采用 rsync 结合 inotify 工具来实现。rsync 是一款强大的数据同步工具,它能够高效地进行本地或远程数据同步。而 inotify 是 Linux 内核提供的一种文件...

    rsync+inotify实时同步用到的资源

    结合rsync和inotify-tools,可以构建实时文件同步系统。当inotify检测到文件或目录有变化时,可以触发rsync进行同步操作。这样,任何在源目录中的改动都会立即被复制到目标目录,确保数据的一致性。 以下是一个基本...

    rsync+inotify实现远程文件时时同步

    rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步

    rsync+inotify开机自启动实时同步增量备份

    rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...

    rsync+inotify说明.docx

    《rsync+inotify在Linux中的文件实时同步详解》 rsync+inotify是一个高效且实用的文件实时同步方案,广泛应用于服务器之间的数据备份和同步。rsync是一款强大的文件复制工具,而inotify则是Linux内核提供的一个文件...

    rsync + inotify实时同步项目详细笔记实战案例

    rsync 是一个功能强大的文件同步工具,而 inotify 是一种 Linux 内核提供的文件系统事件侦听机制。通过将这两种技术结合使用,可以实现实时同步项目的需求。 rsync 服务器配置 在 rsync 服务器上,我们需要配置 ...

    rsync+inotify数据实时同步.pdf

    本文档将详细介绍如何利用rsync和inotify在Linux系统中实现文件的实时同步。 首先,rsync是一种基于Rsync算法的远程同步工具,能够高效地同步文件和目录,支持本地文件系统和远程文件系统之间的同步。它能够检测...

    4-rsync+inotify实时上行同步.docx

    - **文件同步**:实时同步文件系统的变化至另一位置。 #### 知识点二:rsync概述及其用途 **rsync** 是一款用于数据同步的强大工具,它通过高效的算法来减少数据传输量,非常适合远程数据同步和备份。 - **主要...

    linux下Rsync+sersync实现文件数据实时同步

    `sersync`是一个基于`inotify`的文件同步工具,专为Linux设计,它能监听文件系统的变动并实时同步。与Rsync相比,sersync更专注于实时性和自动化,尤其适合监控大量小文件的变化。 1. **实时性**:sersync通过监听...

Global site tag (gtag.js) - Google Analytics