码迷,mamicode.com
首页 > 其他好文 > 详细

Rsync+Inotify实现文件分发

时间:2016-07-17 18:11:18      阅读:670      评论:0      收藏:0      [点我收藏+]

标签:rsync+inotify实现文件分发

Linux内核从2.6.13开始支持inotify。

Inotify可以监控文件系统的读取,修改,创建等状态。(更多信息请参考网上资料)


通过Rsync+Inotify(inotifywati)可以实现文件的批量分发功能。

技术分享


1 查看linux是否支持inotify

    a) 内核至少是2.6.13

        uname -r


    b) 存在/usr/include/sys/inotify.h,说明支持

    c) 查看/proc/sys/fs/inotify/

        total 0

        -rw-r--r-- 1 root root 0 Jul 17 10:28max_queued_events

        -rw-r--r-- 1 root root 0 Jul 17 10:28max_user_instances

        -rw-r--r-- 1 root root 0 Jul 17 10:28max_user_watches

        有以上3个文件说明支持


下载inotify-tools-3.13.tar并安装

    tar zxvf inotify-tools-3.13.tar.gz

    cd inotify-tools-3.13

    ./configure

    make&&make install


    安装完成后会在/usr/local/bin/下生成2个文件:

    ls -l /usr/local/bin/inotify*

    -rwxr-xr-x 1 root root 38582 Jul 17 10:37/usr/local/bin/inotifywait

    -rwxr-xr-x 1 root root 40353 Jul 17 10:37/usr/local/bin/inotifywatch


3 分发服务器server脚本

#!/bin/bash

Host01=ob_web01

HOst02=ob_web02

 

Src=/data/

Dst01=www01/

Dst02=www02/

 

User01=tom

User02=tom

 

/usr/local/bin/inotifywait -mrq -ecreate,modify,delete,attrib $Src |\

while read file

do

rsync -az $Src $User01@$Host01::$Dst01--password-file=/etc/rsync.password

rsync -az $Src $User02@$Host02::$Dst02--password-file=/etc/rsync.password

done


4 web01/02服务器将rsync配置rsync-daemon模式(参考http://szcat.blog.51cto.com/665775/1826733)


5 web01/02服务器rsyncd.conf配置文件

################web01###################

uid = rsync

gid = rsync

max connections = 6

timeout = 300

pid file = /var/run/rsync.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsync.log

ignore errors

read only = false

hosts allow = 192.168.1.0/24

list = false

auth users = tom

secrets file /etc/rsync.password

 

[www01]

path = /www01

comment = web site

auth users = tom

secrets file = /etc/rsync.password


################web02###################

uid = rsync

gid = rsync

max connections = 6

timeout = 300

pid file = /var/run/rsync.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsync.log

ignore errors

read only = false

hosts allow = 192.168.1.0/24

list = false

auth users = tom

secrets file /etc/rsync.password

 

[www02]

path = /www02

comment = web site

auth users = tom

secrets file = /etc/rsync.password


本文出自 “Clark的运维” 博客,请务必保留此出处http://szcat.blog.51cto.com/665775/1827131

Rsync+Inotify实现文件分发

标签:rsync+inotify实现文件分发

原文地址:http://szcat.blog.51cto.com/665775/1827131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!