本文共 3567 字,大约阅读时间需要 11 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | 实验环境: Server : 192.168.9.109 rsync +inotify WEB1:192.168.9.106 rsync server WEB2:192.168.9.104 rsync server Server为分发机,有内容更新则推送 rsync server 注:也可以WEB到Server拉取数据 (1)Server下载安装 rsync +inotify 下载安装 rsync #wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz #tar xf rsync-3.1.2.tar.gz #cd rsync-3.1.2 #./configure #make #make install 下载安装inotify # uname -r 2.6.32-431.el6.x86_64 # ls -l /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Aug 30 12:28 max_queued_events -rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_instances -rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_watches 如果有上面三项输出,表示系统已经默认支持inotify,接着就可以开始安装inotify-tools了。 # cd /usr/local/src/ # wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz # tar xf inotify-tools-3.14.tar.gz # cd inotify-tools-3.14 # ./configure # make # make install # ll /usr/local/bin/inotifywa* -rwxr-xr-x 1 root root 44287 Aug 31 12:23 /usr/local/bin/inotifywait -rwxr-xr-x 1 root root 41377 Aug 31 12:23 /usr/local/bin/inotifywatch #inotify-tools安装完成后,会生成inotifywait和inotifywatch两个指令,其中,inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。 inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。 配置SERVER节点: # vim /data0/inotify.sh #!/bin/bash host1=192.168.9.104 host2=192.168.9.106 src= /webroot/ dst1=WEB1 dst2=WEB2 /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' -- format '%T %w%f%e' \ -e modify,delete,create,attrib ${src} | which read file do /usr/bin/rsync -vzrtopg --delete --progress ${src} ${host1}::${dst1} /usr/bin/rsync -vzrtopg --delete --progress ${src} ${host2}::${dst2} echo "${files} was rsyncd" > /tmp/rsync .log 2>&1 done # chmod +x /data0/inotify.sh # nohup /data0/inotify.sh & # echo "nohup /data0/inotify.sh &" >> /etc/rc.d/rc.local (2)WEB1安装rysnc 下载安装 rsync #wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz #tar xf rsync-3.1.2.tar.gz #cd rsync-3.1.2 #./configure #make #make install 配置 rsync # cat /etc/rsyncd.conf uid = nobody gid = nobody use chroot = no max connections = 10 pid file = /var/run/rsyncd .pid log file = /var/log/rsync .log lock file = /var/lock/rsync .lock hosts deny = * [WEB1] path = /var/www/htm1 comment = WEB1 ignore errors read only = no write only = no hosts allow = 192.168.9.109 192.168.1.104 192.168.5.0 /24 list = false uid = root gid = root 启动 #/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf #echo "/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local (3)WEB2下载安装 rsync #wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz #tar xf rsync-3.1.2.tar.gz #cd rsync-3.1.2 #./configure #make #make install 配置 rsync uid = nobody gid = nobody use chroot = no max connections = 10 pid file = /var/run/rsyncd .pid log file = /var/log/rsync .log lock file = /var/lock/rsync .lock hosts deny = * [WEB2] path = /var/www/htm2 comment = WEB2 ignore errors read only = no write only = no hosts allow = 192.168.9.109 192.168.1.104 192.168.5.0 /24 list = false uid = root gid = root 启动 #/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf #echo "/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local |