<?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[rsync安装、配置全攻略]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Sat, 29 Dec 2012 04:03:49 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	一.介绍 (不想看直接可以跳过) <br/><br/>Rsync 是一个远程数据同步工具，可通过 LAN/WAN 快速同步多台主机间的文件。 Rsync 本来是用以取代 rcp 的一个工具，它当前由&nbsp;&nbsp;rsync.samba.org 维护。 Rsync 使用所谓的“ Rsync 演算法 ”来使本地和远程两个主机之间的文件达到同步，这个算法只传送两个文件的不同部分，而不是每次都整份传送，因此速度相当快。运行 Rsync server 的机器也叫 backup server ，一个 Rsync server 可同时备份多个 client 的数据；也可以多个 Rsync server 备份一个 client 的数据。 <br/><br/>　　Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ，等待对方 Rsync 连接。连接时， Rsync server 会检查口令是否相符，若通过口令查核，则可以开始进行文件传输。第一次连通完成时，会把整份文件传输一次，下一次就只传送二个文件之间不同的部份。 <br/><br/>　　Rsync 支持大多数的类 Unix 系统，无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外，它在 windows 平台下也有相应的版本，比较知名的有 cwRsync 和 Sync2NAS 。 <br/><br/>　　Rsync 的基本特点如下： <br/><br/>　　1. 可以镜像保存整个目录树和文件系统； <br/><br/>　　2. 可以很容易做到保持原来文件的权限、时间、软硬链接等； <br/><br/>　　3. 无须特殊权限即可安装； <br/><br/>　　4. 优化的流程，文件传输效率高； <br/><br/>　　5. 可以使用 rcp 、 ssh 等方式来传输文件，当然也可以通过直接的 socket 连接； <br/><br/>6. 支持匿名传输。 <br/><br/>核心算法介绍： <br/><br/>假定在名为α和β的两台计算机之间同步相似的文件 A 与 B ，其中α对文件 A 拥有访问权，β对文件 B 拥有访问权。并且假定主机α与β之间的网络带宽很小。那么 rsync 算法将通过下面的五个步骤来完成： <br/><br/>　　1. β将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S&nbsp;&nbsp;小。 <br/><br/>　　2. β对每一个分割好的数据块执行两种校验：一种是 32 位的滚动弱校验，另一种是 128 位的 MD4 强校验。 <br/><br/>　　3. β将这些校验结果发给α。 <br/><br/>　　4. α通过搜索文件 A 的所有大小为 S 的数据块 ( 偏移量可以任选，不一定非要是 S 的倍数 ) ，来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。 <br/><br/>　　5. α发给β一串指令来生成文件 A 在β上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明，要么是一个数据块，这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。 <br/><br/>命令： <br/><br/>rsync 的命令格式可以为以下六种： <br/><br/>　　rsync [OPTION]... SRC DEST <br/><br/>　　rsync [OPTION]... SRC [USER@]HOST:DEST <br/><br/>　　rsync [OPTION]... [USER@]HOST:SRC DEST <br/><br/>　　rsync [OPTION]... [USER@]HOST::SRC DEST <br/><br/>　　rsync [OPTION]... SRC [USER@]HOST::DEST <br/><br/>　　rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] <br/><br/>　　对应于以上六种命令格式， rsync 有六种不同的工作模式： <br/><br/>　　1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。 <br/><br/>　　2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。 <br/><br/>　　3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。 <br/><br/>　　4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。 <br/><br/>　　5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。 <br/><br/>　　6) 列远程机的文件列表。这类似于 rsync 传输，不过只要在命令中省略掉本地机信息即可。 <br/><br/> <br/>二.安装 <br/><br/>在centos系统下默认已经安装了rsync，只需进行配置，并开启rsync守候进程即可。<br/><br/><div class="code"><br/>#rpm -qa &#124; grep rsync<br/></div><br/><br/>检查是否已安装。<br/><br/>在CentOS服务器，我们可以执行以下命令安装<br/><div class="code"><br/>yum install rsync<br/></div><br/>对于debian、ubuntu服务器，则是以下命令<br/><div class="code"><br/>sudo apt-get&nbsp;&nbsp;install&nbsp;&nbsp;rsync<br/></div><br/><br/>三、配置<br/><br/>1、修改rsync的配置文件<br/><div class="code"><br/>#cat /etc/xinetd.d/rsync<br/></div><br/><br/>可以看到rysnc服务是关闭的(disable = yes)，这里把它开启，把disable的值改为no<br/><br/><br/>2、 创建rsync服务器配置文件/etc/rsyncd.conf<br/><div class="code"><br/># Minimal configuration file for rsync daemon<br/># See rsync(1) and rsyncd.conf(5) man pages for help<br/> <br/># This line is required by the /etc/init.d/rsyncd script<br/>pid file = /var/run/rsyncd.pid&nbsp;&nbsp; <br/>port = 873<br/>address = 192.168.1.171&nbsp;&nbsp;<br/>#uid = nobody <br/>#gid = nobody&nbsp;&nbsp;&nbsp;&nbsp;<br/>uid = root&nbsp;&nbsp; <br/>gid = root&nbsp;&nbsp; <br/> <br/>use chroot = yes&nbsp;&nbsp;<br/>read only = no&nbsp;&nbsp;<br/> <br/> <br/>#limit access to private LANs<br/>hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0&nbsp;&nbsp;<br/>hosts deny=*<br/> <br/>max connections = 5 <br/>motd file = /etc/rsyncd/rsyncd.motd<br/> <br/>#This will give you a separate log file<br/>#log file = /var/log/rsync.log<br/> <br/>#This will log every file transferred - up to 85,000+ per user, per sync<br/>#transfer logging = yes<br/> <br/>log format = %t %a %m %f %b<br/>syslog facility = local3<br/>timeout = 300<br/> <br/>&#91;linuxsirhome&#93;&nbsp;&nbsp; <br/>path = /home&nbsp;&nbsp;&nbsp;&nbsp;<br/>list=yes <br/>ignore errors <br/>auth users = grtongbu<br/>secrets file = /etc/rsyncd/rsync.passwd <br/>comment = linuxsir home&nbsp;&nbsp;<br/>exclude =&nbsp;&nbsp; beinan/&nbsp;&nbsp;samba/&nbsp;&nbsp; <br/></div><br/>参考释义<br/><div class="code"><br/>#全局选项<br/>strict modes =yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#是否检查口令文件的权限<br/>port = 873&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #默认端口873<br/>log file = /var/log/rsyncd.log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #日志记录文件&nbsp;&nbsp;&nbsp;&nbsp; 原文中有的，我没有使用，日志文件 <br/><br/>pid file = /usr/local/rsync/rsyncd.pid&nbsp;&nbsp; #运行进程的ID写到哪里&nbsp;&nbsp;&nbsp;&nbsp;原文中有的，我没有使用，日志文件 <br/><br/>#模块选项<br/>&#91;test&#93;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 这里是认证的模块名，在client端需要指定<br/>max connections = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#客户端最大连接数,默认0(没限制) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uid = root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#指定该模块传输文件时守护进程应该具有的uid <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gid = root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#指定该模块传输文件时守护进程应该具有的gid <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path = /home/admin/testrsync&nbsp;&nbsp; # 需要做备份的目录<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ignore errors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 可以忽略一些无关的IO错误<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read only = no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #no客户端可上传文件,yes只读<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write only = no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#no客户端可下载文件,yes不能下载<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hosts allow = *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#充许任何主机连接<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hosts deny = 10.5.3.77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #禁止指定的主机连接<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth users = root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 认证的用户名，如果没有这行，则表明是匿名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;secrets file = /home/admin/security/rsync.pass&nbsp;&nbsp;&nbsp;&nbsp;# 指定认证口令文件位置<br/><br/></div><br/><br/><a href="http://blog.sina.com.cn/s/blog_5eda2dda01015fcs.html" target="_blank">http://blog.sina.com.cn/s/blog_5eda2dda01015fcs.html</a><br/><a href="http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc" target="_blank">http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc</a><br/><a href="http://www.centos.bz/2011/06/rsync-server-setup/" target="_blank">http://www.centos.bz/2011/06/rsync-server-setup/</a><br/><a href="http://blog.johntechinfo.com/technology/87" target="_blank">http://blog.johntechinfo.com/technology/87</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] rsync安装、配置全攻略]]></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>