<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>baalchina &#187; rsync</title>
	<atom:link href="http://www.baalchina.net/tag/rsync/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.baalchina.net</link>
	<description>baalchina技术日志</description>
	<lastBuildDate>Fri, 06 Aug 2010 05:40:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用rsync/cwRsync同步文件（20091204更新）</title>
		<link>http://www.baalchina.net/2009/11/rsync-and-cwrsync/</link>
		<comments>http://www.baalchina.net/2009/11/rsync-and-cwrsync/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 02:59:31 +0000</pubDate>
		<dc:creator>baalchina</dc:creator>
				<category><![CDATA[服务器管理]]></category>
		<category><![CDATA[系统管理]]></category>
		<category><![CDATA[cwrsync]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[同步]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://www.baalchina.net/2009/11/rsync-and-cwrsync/</guid>
		<description><![CDATA[&#160;
rsync最早是在linux下的一个同步工具，后来有了Windows版本，叫做cwRsync。
&#160;
目的很简单，同步文件。
客户端和服务端都是Windows
首先服务端安装cwRsync的Server。注意安装的时候会新建一个用户，用作启动该服务。
安装完成之后，将服务设置为自动并启动之。服务叫做RsyncServer。
编辑rsyncd.conf，和Linux下是一个德行哦~
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
secrets file = password.txt 

[web]
path&#160; = /cygdrive/e/rsync
read only = false
transfer logging = no
auth users = 123

解释下。
&#160;

host allow，就是允许的host啦。
secret file就是密码文件。你可以把一个用户名密码放在里面，格式是username:password

&#160;

[web]，有点类似于http服务中的虚拟目录。
path就是他的目录，注意格式，比如e:\rsync，写成/cygdrive/e/rsync
read only，不能只读哦，否则无法复制的。
auth users，也就是只有123这个用户可以写。

&#160;
然后客户端就比较简单了。安装cwRsync，执行以下命令即可同步：

rsync -r -v /cygdrive/e/webapp 123@1.1.1.1::web

意思就是，把e:\webapp目录下的所有文件（-r参数），同步到1.1.1.1的这台主机上的web“虚拟目录”中，使用账号123。当然，也可以挂一个密码文件。

rsync -r -v --password-file=password.txt /cygdrive/e/u3 123@1.1.1.1::web

注意password-file的写法是直接把密码写在里面，我一开始还是按照123:123这个写法写的，结果死活过不去。
&#160;
Linux客户端
首先下载编译安装

wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.6.tar.gz
tar xvzf rsync-3.0.6.tar.gz
cd rsync-3.0.6
./configure --help
./configure --prefix=/usr/local/rsync &#38;&#38; make &#38;&#38; make install

&#160;
使用和Windows客户端基本类似。但是注意passwordfile的权限。比如777的话，那就会提示：

password file must not [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>rsync最早是在linux下的一个同步工具，后来有了Windows版本，叫做cwRsync。</p>
<p>&#160;</p>
<p>目的很简单，同步文件。</p>
<h4>客户端和服务端都是Windows</h4>
<p>首先服务端安装cwRsync的Server。注意安装的时候会新建一个用户，用作启动该服务。</p>
<p>安装完成之后，将服务设置为自动并启动之。服务叫做RsyncServer。</p>
<p>编辑rsyncd.conf，和Linux下是一个德行哦~</p>
<pre language="bash">use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
secrets file = password.txt 

[web]
path&#160; = /cygdrive/e/rsync
read only = false
transfer logging = no
auth users = 123
</pre>
<p>解释下。</p>
<p>&#160;</p>
<blockquote>
<p>host allow，就是允许的host啦。</p>
<p>secret file就是密码文件。你可以把一个用户名密码放在里面，格式是username:password</p>
</blockquote>
<p>&#160;</p>
<blockquote>
<p>[web]，有点类似于http服务中的虚拟目录。</p>
<p>path就是他的目录，注意格式，比如e:\rsync，写成/cygdrive/e/rsync</p>
<p>read only，不能只读哦，否则无法复制的。</p>
<p>auth users，也就是只有123这个用户可以写。</p>
</blockquote>
<p>&#160;</p>
<p>然后客户端就比较简单了。安装cwRsync，执行以下命令即可同步：</p>
<blockquote>
<p>rsync -r -v /cygdrive/e/webapp <a href="mailto:123@1.1.1.1::web">123@1.1.1.1::web</a></p>
</blockquote>
<p>意思就是，把e:\webapp目录下的所有文件（-r参数），同步到1.1.1.1的这台主机上的web“虚拟目录”中，使用账号123。当然，也可以挂一个密码文件。</p>
<blockquote>
<p>rsync -r -v --password-file=password.txt /cygdrive/e/u3 <a href="mailto:123@1.1.1.1::web">123@1.1.1.1::web</a></p>
</blockquote>
<p>注意password-file的写法是直接把密码写在里面，我一开始还是按照123:123这个写法写的，结果死活过不去。</p>
<p>&#160;</p>
<h4>Linux客户端</h4>
<p>首先下载编译安装</p>
<blockquote>
<p>wget <a href="http://samba.anu.edu.au/ftp/rsync/rsync-3.0.6.tar.gz">http://samba.anu.edu.au/ftp/rsync/rsync-3.0.6.tar.gz</a></p>
<p>tar xvzf rsync-3.0.6.tar.gz</p>
<p>cd rsync-3.0.6</p>
<p>./configure --help</p>
<p>./configure --prefix=/usr/local/rsync &amp;&amp; make &amp;&amp; make install</p>
</blockquote>
<p>&#160;</p>
<p>使用和Windows客户端基本类似。但是注意passwordfile的权限。比如777的话，那就会提示：</p>
<blockquote>
<p>password file must not be other-accessible </p>
<p>continuing without password file</p>
</blockquote>
<p>也就是告诉你别人不能看到他。必须要600权限。</p>
<p>另外，所有者也应当是root，如果用root运行rsync的话。</p>
<p>&#160;</p>
<h4>错误解决方案</h4>
<blockquote>
<p>rsync: failed to connect to 210.28.93.4: No route to host (113)</p>
</blockquote>
<p>这个嘛，是server端口的防火墙端口没开。</p>
<blockquote>
<p>@ERROR: chroot failed<br />
    <br />rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6] </p>
<p></p>
</blockquote>
<p>这个嘛，是服务器上忘记新建目录了…</p>
<blockquote>
<p>sending incremental file list<br />
    <br />rsync: connection unexpectedly closed (446032 bytes received so far) [sender] </p>
<p>rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]</p>
</blockquote>
<p>原因不明。好像是因为本地的文件改变了，然后查找列表，过了超时时间于是报错。</p>
<blockquote>
<p>rsync warning: some files vanished before they could be transferred (code 24) at main.c(1039) [sender=3.0.6]</p>
</blockquote>
<p>本地文件在同步过程中被删除了。</p>
<h4>Tips:</h4>
<ol>
<li>cwRsyncServer的权限问题：如果Server端是Windows，安装的时候选择的服务运行用户又是默认的svccwrsync的话，就会发现同步上去的文件都是属于这个用户的，administrator也打不开，必须要获取所有权才可以。这个一直没有办法解决，我是变通通过将服务修改为administrator执行来解决的。待研究。参考：<a title="http://www.itefix.no/i2/node/12115#comment-15208" href="http://www.itefix.no/i2/node/12115#comment-15208">http://www.itefix.no/i2/node/12115#comment-15208</a> </li>
<li>如果文件很大，基本上会消耗很长时间…比如，<br />
<blockquote>
<p>10828136680 100%&#160;&#160;&#160; 2.50MB/s&#160;&#160;&#160; 1:08:49 (xfer#1, to-check=8/12) </p>
<p>sent 102912 bytes&#160; received 832464 bytes&#160; 200.49 bytes/sec<br />
        <br />total size is 10868802803&#160; speedup is 11619.72</p>
</blockquote>
</li>
</ol>
<ol>这次同步卡在99%几乎有两三个小时，服务器端：</ol>
<blockquote>
<p>-rw-r--r-- 1 root root 10826577139 12-01 11:15 error.log<br />
    <br />-rw------- 1 root root 10734010368 12-01 22:02 .error.log.Kd5u45</p>
</blockquote>
<p>下面一个类似临时文件的东东，会不断的增长，直到达到目标大小。我用VMware+iSCSI测试的时候，几乎卡死了。如果这个文件还是在不停增长的，应该会选择开始传输他的时间点进行同步。</p>
<ol>
<li>但是rsync增量的时候效果还是不错的。80多w文件的bbs附件，第一次备份花了8个半小时，但是后期增量，在sending incremental file list这个过程只需要大概1分钟左右就可以过掉了。效果不错。 </li>
</ol>
<p>&#160;</p>
<h4>最后贴一下自己的bbs备份的rsyncd.conf</h4>
<blockquote>
<p>################################<br />
    <br />#Rsync Conf for BBS.ATTACHMENTS# </p>
<p>#&#160;&#160;&#160;&#160;&#160;&#160; by baalchina&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #&#160;&#160;&#160;&#160; <br />#&#160;&#160;&#160;&#160;&#160;&#160; Last Modified&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; # </p>
<p>#&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2009-12-01&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; # </p>
<p>################################ </p>
<p>#General Setting<br />
    <br />pid file = /var/run/rsyncd.pid </p>
<p>port = 873 </p>
<p>address = 210.28.93.4 </p>
<p>uid = root<br />
    <br />gid = root </p>
<p>use chroot = yes<br />
    <br />read only = no </p>
<p>#ACLS<br />
    <br />hosts allow = 210.28.92.4/255.255.255.255 </p>
<p>hosts deny = * </p>
<p>max connections = 5<br />
    <br />motd file = /etc/rsyncd/rsyncd.motd </p>
<p>#Log file<br />
    <br />log format = %t %a %m %f %b </p>
<p>syslog facility = local3 </p>
<p>#timeout = 800 </p>
<p>###################################<br />
    <br />#This is virtual directory setting# </p>
<p>################################### </p>
<p>#bbs attachments setting<br />
    <br />[attach] </p>
<p>path = /data/attachments </p>
<p>list = yes </p>
<p>ignore errors </p>
<p>auth users = attach </p>
<p>secrets file = /etc/rsyncd/rsyncd.secrets </p>
<p>comment = for nau bbs attachments</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.baalchina.net/2009/11/rsync-and-cwrsync/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
