<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[linux下两台服务器实时同步]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Tue, 21 Jun 2022 15:41:32 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	1、下载所需的安装包：<br/>先把两个包放在/usr/src/下。<br/>a、rsync下载路径：<a href="http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz" target="_blank">http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz</a><br/><br/>b、inotify下载路径：<a href="http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz" target="_blank">http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz</a><br/><br/>源服务器：192.168.0.1&nbsp;&nbsp; 目录 /opt/test/<br/>目标服务器：192.168.0.2&nbsp;&nbsp;目录 /opt/test/<br/><br/>实现的目的就是保持这两个服务器某个文件目录保持实时同步<br/><br/>2. rsync 同步软件<br/>在 源服务器 和 目标服务器 都需要安装<br/>源服务器： 是rsync客户端，不需要配置<br/>目标服务器： 是rsync服务器端，需要配置/etc/rsyncd.conf里的内容<br/><br/>3.安装rsync:<br/><div class="code"><br/>&#91;root@nginx ~&#93;# cd /usr/src/ <br/>&#91;root@nginx src&#93;# tar zxvf rsync-3.0.9.tar.gz <br/>&#91;root@nginx src&#93;# cd rsync-3.0.9 <br/>&#91;root@nginx rsync-3.0.9&#93;# ./configure --prefix=/usr/local/rsync <br/>&#91;root@nginx rsync-3.0.9&#93;# make <br/>&#91;root@nginx rsync-3.0.9&#93;# make install<br/></div><br/><br/>创建密码认证文件：<br/><div class="code"><br/>&#91;root@nginx rsync-3.0.9&#93;# cd /usr/local/rsync/<br/>&#91;root@nginx rsync&#93;# echo &quot;Ad3rh5u3f&quot; &gt;/usr/local/rsync/rsync.passwd<br/></div><br/>给密码文件赋予600权限：<br/><div class="code"><br/>&#91;root@nginx rsync&#93;# chmod 600 rsync.passwd<br/></div><br/> 安装后需要新建配置文件：/etc/rsyncd.conf<br/>文件内容如下：<br/><div class="code"><br/>uid = root<br/>gid = root<br/>use chroot = no<br/>max connections = 10<br/>strict modes = yes<br/>pid file=/var/run/rsyncd.pid<br/>lock file=/var/run/rsyncd.lock<br/>log file= =/var/run/rsyncd.log<br/><br/>&#91;www&#93;<br/>path= /opt/test<br/>comment= web file<br/>ignore errors <br/>read only = no <br/>write only = no <br/>hosts allow = 192.168.0.1<br/>hosts deny = * <br/>list = false<br/>uid = root <br/>gid = root <br/>auth users = webuser <br/>secrets file = /usr/local/rsync/rsync.passwd<br/><br/></div><br/><br/>3.安装inotify<br/>该工具为文件实时监控工具<br/>注意： 在 源服务器上需要安装，目标服务器上不需要安装inotify。<br/><div class="code"><br/>&#91;root@nginx rsync&#93;# cd /usr/src/ <br/>&#91;root@nginx src&#93;# tar zxvf inotify-tools-3.14.tar.gz <br/>&#91;root@nginx src&#93;# cd inotify-tools-3.14 <br/>&#91;root@nginx inotify-tools-3.14&#93;# ./configure --prefix=/usr/local/inotify <br/>&#91;root@nginx inotify-tools-3.14&#93;# make <br/>&#91;root@nginx inotify-tools-3.14&#93;# make install<br/></div><br/><br/>4.创建监控脚本<br/><div class="code"><br/>#!/bin/bash <br/>host=192.168.0.2<br/>src=/opt/test/&nbsp;&nbsp;&nbsp;&nbsp;<br/>des=www <br/>user=webuser <br/>/usr/local/inotify/bin/inotifywait -mrq --timefmt &#039;%d/%m/%y %H:%M&#039; --format &#039;%T %w%f%e&#039; -e modify,delete,create,attrib $src &#92; <br/>&#124; while read files <br/>do<br/>/usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync1.passwd $src $user@$host::$des <br/>echo &quot;$&#123;files&#125; was rsynced&quot; &gt;&gt;/tmp/rsync.log 2&gt;&amp;1 <br/>done<br/></div><br/>注意： 这里的 www 是在目标服务器/etc/rsyncd.conf里配置的模块名称：[www]<br/><br/>赋予执行权限：<div class="code">chmod +x&nbsp;&nbsp;inotify_bak.sh</div><br/><br/>然后执行：<div class="code">sh inotify_bak.sh &amp;&nbsp;&nbsp;</div>放入后台执行<br/><br/>5. 关于启动<br/><br/>&nbsp;&nbsp; 目标服务器：先启动rsync后台服务： /usr/bin/rsync --daemon<br/><br/>&nbsp;&nbsp; 来源服务器： 执行sh inotify_bak.sh & <br/><br/>6. 测试：<br/><br/>&nbsp;&nbsp; 在来源服务器目录中新建目录和文件，inotify_bak.sh脚本会检测到，然后同步到目标服务器的相关目录下<br/><br/> <br/>&nbsp;&nbsp; 可以查看日志文件： /opt/soft/log/rsync.log 命令如下：观察实时同步的情况。<br/><br/>&nbsp;&nbsp; tail -f&nbsp;&nbsp;/tmp/rsync.log<br/>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] linux下两台服务器实时同步]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>