安装环境:
server:192.168.2.183
client:192.168.2.222
两台服务器上分别安装:
<code>yum </code><code>install</code> <code>rsync</code> <code>-y</code>
sever端配置rsync文件vi /etc/rsyncd.conf 默认配置文件不存在自己创建,以下为配置
<code> </code><code>uid = nobody</code>
<code>gid = nobody</code>
<code>port = 873</code>
<code>host all = 192.168.2.222</code>
<code>use chroot = on</code>
<code>max connections = 4</code>
<code>timeout = </code><code>yes</code>
<code>[web]</code>
<code>path = </code><code>/var/www/html/</code>
<code>comment = </code><code>rsync</code> <code>files</code>
<code>ignore errors</code>
<code>read</code> <code>only = no</code>
<code>list = </code><code>yes</code>
<code>auth </code><code>users</code> <code>= </code><code>rsync</code>
<code>secrets </code><code>file</code> <code>= </code><code>/etc/rsync_server</code><code>.</code><code>passwd</code>
<code>~</code>
创建密码通信文件vi /etc/rsync_server.passwd 并给与600权限
<code>[root@localhost ~]</code><code># cat /etc/rsync_server.passwd </code>
<code>rsync</code><code>:</code><code>rsync</code>
<code>chmod</code> <code>600 </code><code>/etc/rsync_server</code><code>.</code><code>passwd</code>
启动rsync
<code>rsync</code> <code>--daemon</code>
查看监听端口
<code>[root@localhost ~]</code><code># netstat -ntulp | grep rsync</code>
<code>tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 20404</code><code>/rsync</code>
<code>tcp 0 0 :::873 :::* LISTEN 20404</code><code>/rsync</code>
rsync配置完毕
client端配置
实现实时同步需要安装inotify文件检查工具
下载安装
<code>wget http:</code><code>//github</code><code>.com</code><code>/downloads/rvoicilas/inotify-tools/inotify-tools-3</code><code>.14.</code><code>tar</code><code>.gz</code>
<code> </code><code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/inotify</code>
<code> </code>
<code> </code><code>make</code> <code>&& </code><code>make</code> <code>install</code>
编写脚本inotify.sh然后后端执行,脚本内容如下:
<code>#!/bin/bash</code>
<code>host=192.168.2.183</code>
<code>src=</code><code>/data/soft/</code>
<code>dst=web</code>
<code>user=</code><code>rsync</code>
<code>inotifywait=</code><code>/usr/local/inotify/bin/inotifywait</code>
<code>rsync</code><code>=</code><code>/usr/bin/rsync</code>
<code>$inotifywait -mrq --timefmt </code><code>'%d/%m/%y %H:%M'</code> <code>--</code><code>format</code> <code>'%T %w %f'</code> <code>-e modify,delete,create,attrib $src |</code>
<code> </code><code>while</code> <code>read</code> <code>file</code> <code>DATE TIME DIR;</code>
<code>do</code>
<code>$</code><code>rsync</code> <code>-vzrtopg --delete --progress $src $user@$host::$dst --password-</code><code>file</code><code>=</code><code>/etc/rsync_client</code><code>.</code><code>passwd</code>
<code>echo</code> <code>"${files} was rsynced"</code> <code>>> </code><code>/var/log/rsync</code><code>.log 2>&1</code>
<code>done</code>
客户端创建rsync同步密码文件rsync_client.passwd 并给与600权限
<code>[root@node2 ~]</code><code># cat /etc/rsync_client.passwd </code>
<code>rsync</code>
<code>chmod</code> <code>600 </code><code>/etc/rsync_client</code><code>.</code><code>passwd</code>
<code>rsync</code>
然后
后台运行inotify.sh脚本
<code>nohup</code> <code>sh inotify.sh &</code>
<code>[root@node2 ~]</code><code># jobs</code>
<code>[1]+ Running </code><code>nohup</code> <code>sh inotify.sh &</code>
<code>fg</code><code>是调用后台运行的程序的,</code>
然后测试客户端将文件推送到服务端:
在客户端/data/soft/下创建删除文件,服务端的/var/www/html/目录下也会实时同步,/html/目录要有写的权限
<code> </code><code><br data-filtered=</code><code>"filtered"</code><code>></code>
本文转自 Anonymous123 51CTO博客,原文链接:http://blog.51cto.com/woshitieren/1690555