注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

inotify-tool+srsync实现目录同步一例  

2014-01-15 15:45:19|  分类: 数据同步 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

假设两个服务器:A与B   要求:实现保持这两个服务器A与B文件目录保持实时同步

A:192.168.0.1 源服务器  有目录 /opt/test/
B:192.168.0.2 目标服务器  有目录 /opt/bak/test/


实现方式: rsync+inotify-tools

1.  rsync 同步软件:  A与B服务器都安装,执行同步任务;实际上,lunux的发行版大多使用rsync来发布自己的更新.

    A源服务器: 是rsync客户端,不需要配置;
  B目标服务器: 是rsync服务器端,配置/etc/rsyncd.conf

   需新建配置文件:/etc/rsyncd.conf
   配置文件在: /etc/(习惯上都放这里)

 说明:如果要实现两边文件夹的内容双向同步,那就得对等看看

 文件内容如下:

uid = root
gid = root
use chroot = no
max connections = 10
strict modes = yes
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file= =/var/run/rsyncd.log

[www]
path= /opt/bak/test
comment= analyse
read only = false
hosts allow = *

2.  inotify-tools 工具:承担文件实时监控文件的变化情况
   inotify-tools 为文件实时监控工具,需linux内核支持;
  执行uname -r  ;只要返回linux核心版本大于2.6.13以上即可
  
   执行:
   ll  /proc/sys/fs/inotify
   max_queued_events
    max_user_instances
    max_user_watches

   安装inotify-tools工具.
inotify-toolsrsync实现目录同步一例 - itoedr - itoedr的it学苑
   使用新立得安装.

  安装inotify-tools后会在相关安装目录下生成如下两个文件: inotifywait 与 inotifywatch
  则表示安装成功。
  因为inotify只能监控本机的文件变化,所以双机均需安装.

3. 相关脚本(采集):
   在A源服务器上新建脚本:
inotify_bak.sh

#!/bin/bash
src=/opt/test/
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src |  while read file
do
         /usr/bin/rsync -arzuq $src 192.168.0.2::www/
       echo "  ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1
done
 注意: 这里的 www 是在目标服务器/etc/rsyncd.conf里配置的模块名称:[www]

赋予执行权限: chmod +x  inotify_bak.sh
执行(nohup)otify_bak.sh &  放入后台执行

 4. 关于启动
   目标服务器:先启动rsync后台服务: /usr/bin/rsync --daemon
   来源服务器: 执行 inotify_bak.sh &

5. 测试
   在来源服务器目录中新建目录和文件,inotify_bak.sh脚本会检测到,然后同步到目标服务器的相关目录下
   可以查看日志文件: /opt/soft/log/rsync.log 命令如下:观察实时同步的情况。
   tail -f  /opt/soft/log/rsync.log
  评论这张
 
阅读(93)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017