admin 发表于 2023-2-16 18:55:01

linux文件同步之rsync学习(一)

<div id="article_content" class="article_content clearfix">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
      <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
                <div id="content_views" class="htmledit_views">
                  <p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">这几天刚好有空就打算开始学习linux下的文件同步软件rsync&#xff0c;在学习rsync时&#xff0c;我们可以分以下几个步骤进行&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">1、 rsync是什么</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">2、 rsync的工作原理</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">3、 rsync优点</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">4、 rsync认证方式</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">5、 安装rsync</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">6、 rsync命令参数详解</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">7、 配置rsync</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">8、 rsync的启动与关闭</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">9、 rsync同步实例</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">说明&#xff1a;rsync服务器与客户端使用的OS均为&#xff1a;centos 6.5 64bit。</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120387619981.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>一、rsync是什么</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">在开始正式学习rsync之前&#xff0c;我们先来回答这个问题&#xff1a;rsync是什么。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync&#xff08;remote synchronize&#xff09;是Liunx/Unix下的一个远程数据同步工具。它可通过LAN/WAN快速同步多台主机间的文件和目录&#xff0c;并适当利用rsync算法&#xff08;差分编码&#xff09;以减少数据的传输。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync算法并不是每一次都整份传输&#xff0c;而是只传输两个文件的不同部分&#xff0c;因此其传输速度相当快。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">除此之外&#xff0c;rsync可拷贝、显示目录属性&#xff0c;以及拷贝文件&#xff0c;并可选择性的压缩以及递归拷贝。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>二、rsync的工作原理</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">1、客户端构造FileList&#xff0c;FileList包含了需要与服务器同步的所有文件信息对name->id&#xff08;id用来唯一表示文件例如MD5&#xff09;。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">2、客户端将FileList发送到服务器。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">3、服务器上rsync处理客户端发过来的FileList&#xff0c;构建新的NewFileList。其中根据MD5值比较&#xff0c;删除服务器上已经存在的文件信息对&#xff0c;只保留服务器上不存在或变化的文件。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">4、客户端得到服务器发送过来的NewFileList&#xff0c;然后把NewFileList中的文件重新传输到服务器。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>三、rsync优点</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync有以下几个优点&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">1&#xff09;可以镜像保存整个目录树和文件系统。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">2&#xff09;可以很容易做到保持原来文件的权限、时间、软硬连接等。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">3&#xff09;无需特殊权限即可安装。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">4&#xff09;拥有优化的流程和比较高的文件传输效率。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">5&#xff09;可以使用shell&#xff08;rsh、ssh&#xff09;方式来传输文件。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">6&#xff09;支持匿名运行。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">7&#xff09;与scp相比&#xff0c;rsync传输速度绝对远远超过scp的传输速度。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">我们在局域网中经常用rsync和scp传输大量mysql数据库文件&#xff0c;发现rsync传输文件速度至少要比scp快20倍以上。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">所以如果需要在Liunx/Unix服务器之间互传海量数据时&#xff0c;建议选择rsync进行传输。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>四、rsync认证方式</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync有两种常用的认证方式&#xff0c;一种是rsync-daemon方式&#xff0c;另外一种是ssh方式。在平时使用过程&#xff0c;我们使用最多的是rsync-daemon方式。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;"><strong>注意&#xff1a;在使用rsync时&#xff0c;服务器和客户端都必须安装rsync程序</strong>。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>4.1 rsync-daemon</strong><strong>认证</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync在rsync-daemon认证方式下&#xff0c;<span style="color:#ff0000;">默认监听TCP的873端口。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync-daemon认证方式是rsync的主要认证方式&#xff0c;这个也是我们经常使用的认证方式。<span style="color:#ff0000;">并且也只有在此种模式下&#xff0c;rsync才可以把密码写入到一个文件中。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;rsync-daemon认证方式&#xff0c;需要服务器和客户端都安装rsync服务&#xff0c;并且只需要rsync服务器端启动rsync&#xff0c;同时配置rsync配置文件。客户端启动不启动rsync服务&#xff0c;都不影响同步的正常进行。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>4.2 ssh</strong><strong>认证</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync在ssh认证方式下&#xff0c;可通过系统用户进行认证&#xff0c;即在rsync上通过ssh隧道进行传输&#xff0c;类似于scp工具。此时同步操作不在局限于rsync中定义的同步文件夹。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;"><strong>注意&#xff1a;ssh认证方式&#xff0c;不需要服务器和客户端配置rsync</strong><strong>配置文件</strong><strong>&#xff0c;只需要双方都安装rsync服务&#xff0c;并且也不需要双方启动rsync。</strong></span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">若rsync服务端SSH为标准端口&#xff0c;此时rsync使用方式如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -avz /root/test root&#64;192.168.199.248:/root/</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120424794378.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">若rsync服务端SSH为非标准端口&#xff0c;可通过rsync的-e参数进行端口指定。使用方式如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -avz /root/test -e 'ssh -p1234' root&#64;192.168.199.248:/root/</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120442296576.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>五、安装rsync</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">安装rsync&#xff0c;我们可以分为两种方式&#xff1a;源码方式安装和RPM方式安装。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;rsync软件无论是服务器端还是客户端都是同一个软件包。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">下面我们就一一讲解&#xff0c;这两种方式的安装方法。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>5.1 </strong><strong>源码方式安装</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">源码方式安装rsync&#xff0c;我们需要到其官网下载对应的安装包。rsync官网&#xff1a;rsync.samba.org。如下&#xff1a;</span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120451365134.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120465266674.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">我们使用wget进行下载&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">wget http://rsync.samba.org/ftp/rsync/rsync-3.1.1.tar.gz</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120472928274.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">安装包下载完毕后&#xff0c;我们开始解压并安装。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">tar -xf rsync-3.1.1.tar.gz</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">./configure</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">make &&make install</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120480114889.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120492297715.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120502144016.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">注意&#xff1a;源码安装rsync时&#xff0c;其编译时所需要的gcc库文件尽量提前安装完毕。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync源码安装会把rsync默认安装到/usr/local/目录下&#xff0c;我们可以通过相关帮助进行查看到。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">./configure --help</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120510587656.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync安装完毕后&#xff0c;我们可以查看rsync的使用帮助。我们此时需要切换到<span style="color:#ff0000;">/usr/local/bin</span>目录下&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">/usr/local/bin</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -h</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120519338755.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">源码方式安装的rsync&#xff0c;要使其开机启动的话。我们可以直接把启动命令放入到rc.local文件中。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo &#34;/usr/local/bin/rsync --daemon --config&#61;/etc/rsyncd.conf&#34;>>/etc/rc.local</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">也可以写成&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo &#34;/usr/local/bin/rsync --daemon&#34;>>/etc/rc.local</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">cat /etc/rc.local</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120527144585.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>5.2 RPM</strong><strong>方式安装</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">RPM方式安装rsync比较简单&#xff0c;直接使用yum进行安装即可。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">yum -y install rsync</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120538867127.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">查看rsync安装的位置&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rpm -ql rsync-3.0.6-12.el6.x86_64</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120548861956.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">通过上图可以看到RPM方式安装的rsync是把rsync安装到<span style="color:#ff0000;">/usr/bin</span>目录下的&#xff0c;并且还生成一个<span style="color:#ff0000;">/etc/xinetd.d/rsync</span>文件。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">查看安装时产生的帮助文档&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">more /usr/share/doc/rsync-3.0.6/README</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120563867697.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">安装结束后&#xff0c;我们可以查看下rsync命令所在的目录以及rsync的帮助。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">which rsync</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync –-help</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120572292338.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">通过上图可以很明显的看到rsync确实被安装到了/usr/bin目录下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">RPM方式安装的rsync&#xff0c;要使其开机启动的话&#xff0c;我们也可以让其与源码方式安装的一样进行开机启动。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">除此之外还有一种方法&#xff0c;可以使其开机启动。如果你注意观察的话&#xff0c;会发现rsync在安装时生成的<span style="color:#ff0000;">/etc/xinetd.d/rsync</span>文件。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">在centos下rsync默认以xinetd方式运行rsync服务。所以RPM方式安装的话rsync&#xff0c;我们只需启动xinet服务即可。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">但是在启动xinetd服务之前&#xff0c;我们还需要配置文件/etc/xinetd.d/rsync&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">vi /etc/xinetd.d/rsync</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141120595891652.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">配置完毕后&#xff0c;我们还需要安装xinetd软件包&#xff0c;否则无法启动xinetd服务。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">yum -y install xinetd</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">/etc/init.d/xinetd start</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">chkconfig xinetd on</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">netstat -tunlp |grep 873</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121004013536.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121012764635.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>六、rsync命令参数详解</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync安装完毕后&#xff0c;我们来查看下rsync命令的帮助&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync --help</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121022768463.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>6.1 rsync</strong><strong>几个重要参数</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">我们先在此大致介绍下经常使用的几个参数&#xff1a;-v&#xff0c;-a&#xff0c;-z&#xff0c;有关这些参数的具体说明详见这篇文章《烂泥&#xff1a;【转】rsync命令参数详解》。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">-v, --verbose详细模式输出。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">-a, --archive归档模式&#xff0c;表示以递归方式传输文件&#xff0c;并保持所有文件属性不变。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">-z, --compress对备份的文件在传输时进行压缩处理。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">--delete&#xff1a;删除那些DST中存在而在SRC中没有的文件。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>6.2 rsync</strong><strong>六种工作模式</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">除此上述几个参数之外&#xff0c;我们还注意到上图中rsync的七个命令格式&#xff1a;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">1&#xff09;rsync ... SRC ... DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">2&#xff09;rsync ... SRC ... HOST:DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">3&#xff09;rsync ... SRC ... HOST::DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">4&#xff09;rsync ... SRC ... rsync://HOST[:PORT]/DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">5&#xff09;rsync ... HOST:SRC </span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">6&#xff09;rsync ... HOST::SRC </span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">7&#xff09;rsync ... rsync://HOST[:PORT]/SRC </span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">这七个命令格式就是代表rsync六种不同的工作模式&#xff0c;其中第四种和第七种模式没有多大的区别。<span style="color:#ff0000;">在这几种模式中第三种和第六种模式是我们经常使用的&#xff0c;特别是第三种模式。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">这六种模式总体上可以用两个词进行区分&#xff1a;推送、拉取。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">推送就是在客户端上执行rsync命令&#xff0c;目的是把客户端需要同步的文件推送到服务器上。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">拉取也是在客户端上执行rsync命令&#xff0c;目的是把服务器上的文件拉取到本地。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;无论是推送和拉取&#xff0c;rsync命令都是在客户端执行&#xff0c;只是命令的格式不同而已。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">1) rsync ... SRC ... DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">同步本地文件&#xff0c;从一个目录同步到另外一个目录。如&#xff1a;rsync -avz /data /backup&#xff0c;表示把本地/data目录下的文件同步到本地/backup目录下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">2) rsync ... SRC ... HOST:DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">使用一个远程shell程序(如rsh、ssh)来实现把本地的文件同步到远程机器上。<strong><span style="color:#ff0000;">此种方式属于推送方式</span>。</strong>如&#xff1a;rsync -avz /data test&#64;192.168.199.247:/backup&#xff0c;表示把本地/data目录下的文件同步到服务器192.168.199.247的/backup目录下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">3) rsync ... SRC ... HOST::DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">把本地的文件同步到远程服务器上<strong>&#xff0c;<span style="color:#ff0000;">其中DEST表示的是rsync服务器的认证模块名。此种方式属于推送方式</span>。</strong>如&#xff1a;rsync -avz /data test&#64;192.168.199.247::backup --password-file&#61;/etc/rsyncd.password&#xff0c;表示把本地/data目录下的文件同步到服务器192.168.199.247的backup模块下path路径下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">4) rsync ... SRC ... rsync://HOST[:PORT]/DEST</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">列出远程机器的文件列表。这类似于ls命令&#xff0c;不过只要在命令中省略掉本地机信息即可。如&#xff1a;rsync -v rsync://test&#64;192.168.199.247/backup&#xff0c;表示在本机列出服务器192.168.199.247的/backup目录下的内容&#xff0c;如下&#xff1a;</span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121038869405.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">5) rsync ... HOST:SRC </span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">把远程机器的文件同步到本地&#xff0c;<strong><span style="color:#ff0000;">此种方式属于拉取方式</span></strong>。如&#xff1a;rsync -avz test&#64;192.168.199.247:/backup /data&#xff0c;表示把192.168.199.247的/backup目录下文件同步到本地/data目录下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">6) rsync ... HOST::SRC </span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">把远程机器的文件同步到本地&#xff0c;<strong><span style="color:#ff0000;">此种方式属于拉取方式</span></strong>。如&#xff1a;rsync -avz test&#64;192.168.199.247::backup --password-file&#61;/etc/rsyncd.password /data&#xff0c;表示把192.168.199.247的backup模块path路径下的文件同步到本地/data目录下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>七、配置rsync</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync安装完毕后&#xff0c;我们就需要配置rsync。而对于rsync服务器来说&#xff0c;最重要和最复杂的就是它的配置了。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync的配置分为服务器端和客户端&#xff0c;下面我们分开一一讲解。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>7.1 rsync</strong><strong>服务器端配置</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync服务器端需要两个配置文件&#xff1a;rsyncd.conf、rsyncd.password。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">其中rsyncd.conf默认存放在/etc/目录下&#xff0c;同时它也是rsync服务器的主配置文件。该文件配置了rsync服务器的控制认证、访问、日志记录等等。而rsyncd.password主要用于存储rsync用户名和密码。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">但是在rsync安装完毕后后是不会生成以上这两个配置文件的&#xff0c;需要我们手工进行创建。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsyncd.conf配置文件内容如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">cat /etc/rsyncd.conf</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">uid &#61; root</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">gid &#61; root</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">user chroot &#61; no</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">max connections &#61; 200</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">timeout &#61; 600</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">pid file &#61; /var/run/rsyncd.pid</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">lock file &#61; /var/run/rsyncd.lock</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">log file &#61; /var/run/rsyncd.log</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;"></span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">path &#61; /backup/</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">ignore errors</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">read only &#61; no</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">list &#61; no</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">hosts allow &#61; 192.168.199.0/255.255.255.0</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">auth users &#61; test</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">secrets file &#61; /etc/rsyncd.password</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;"></span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">path &#61; /www/</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">ignore errors</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">read only &#61; no</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">list &#61; no</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">hosts allow &#61; 192.168.199.0/255.255.255.0</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">auth users &#61; apache</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">secrets file &#61; /etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121052761947.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">有关rsync配置文件的详细讲解&#xff0c;看下篇文章《烂泥&#xff1a;rsync配置文件详解》。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;"><strong>rsync</strong><strong>默认是在nobody用户下运行的&#xff0c;但是我们为了以后同步时不为各种权限的事情烦恼&#xff0c;就让其在root用户下运行。</strong></span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">配置文件创建完毕后&#xff0c;我们来创建密码文件。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo &#34;test:test&#34;>>/etc/rsyncd.password</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo &#34;apache:apache&#34;>>/etc/rsyncd.password</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">cat /etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121061364518.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;该密码文件中的用户和密码可以进行自定义&#xff0c;同时该用户不一定要在服务器中的系统用户存在。</span></strong></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121073082359.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">密码文件创建完毕后&#xff0c;要把其权限要设置为600&#xff0c;否则会在以后同步时提示验证出错。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">chmod 600 /etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121094011987.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">一个rsync配置文件中可以包含多个认证模块&#xff0c;同时一个密码文件中也可以存放多个用户和其对应的密码。其中每一个认证模块可以对应不同的客户端。</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">以上两个文件创建完毕后&#xff0c;我们来创建其对应的目录并授权&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">mkdir /{backup,www}</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">chown root:root –R /backup/</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">chown root:root –R /www/</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121103867286.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121112618386.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">以上就是rsync服务器端的配置。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>7.2 rsync</strong><strong>客户端配置</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync客户端配置与服务器端相比差别还是比较大的。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">在客户端安装完毕rsync服务后&#xff0c;是不需要启动rsync服务的。我们只需要在客户端创建连接rsync服务器时&#xff0c;验证码用户所需要的密码文件即可。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">该密码文件中的密码要与rsync服务器上的密码文件中的密码对应&#xff0c;并且也要与rsync服务器rsyncd.conf配置文件中的认证模块中的用户匹配。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">当然该密码文件不创建也是可以的&#xff0c;不创建的话。我们在执行rsync操作时&#xff0c;就需要输入rsync的对应用户的密码。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo &#34;apache&#34;>>/etc/rsyncd.password</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">chmod 600 /etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121123236727.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;该密码文件中只能存放一个用户的密码&#xff0c;并且该文件与rsync服务器端的密码文件一样也需要把其权限设置为600。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">以上就是rsync客户端的配置。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>八、rsync的启动与关闭</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync服务器端与客户端都配置完毕后&#xff0c;我们就可以来启动rsync服务器&#xff0c;并且也可以关闭rsync服务。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>8.1 </strong><strong>启动rsync服务</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">在前面我们讲过rsync-daemon认证方式&#xff0c;需要服务器和客户端都安装rsync服务&#xff0c;并且只需要rsync服务器端启动rsync&#xff0c;同时配置rsync配置文件&#xff0c;客户端启动不启动rsync服务。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">在此我们只讲解rsync-daemon认证方式的启动。有关rsync使用ssh方式认证&#xff0c;我们就不在此讲解了&#xff0c;如果有想了解的童鞋&#xff0c;可以看看6.2章节的rsync六种工作模式。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">如果是源码方式安装的rsync&#xff0c;我们可以使用rsync –daemon来启动rsync。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">echo PATH&#61;$PATH:/usr/local/bin/>>/etc/profile</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">source /etc/profile</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">rsync --daemon</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">ps aux |grep rsync</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">netstat -tunlp |grep 873</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121132617041.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="color:#ff0000;">注意&#xff1a;上述命令行中&#xff0c;只有rsync --daemon才是启动rsync的命令。并且该命令启动时&#xff0c;会默认加载/etc/rsyncd.conf文件。</span></strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">所以如果rsync的配置文件不在/etc目录下或者rsync配置文件名不为rsyncd.conf&#xff0c;那么我们在启动rsync服务时&#xff0c;就要手工加上该配置文件的完整路径。方法如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync --daemon --config&#61;/etc/rsyncd.conf</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121141679897.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">有关如何加载该配置文件&#xff0c;我们可以通过rsync --daemon --help进行查看。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync --daemon --help</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121154016953.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">如果是RPM方式安装的rsync&#xff0c;我们在5.2章节RPM方式安装rsync中已经讲解过了&#xff0c;可以通过启动xinetd服务来启动rsync。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">/etc/init.d/xinetd start</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121180899466.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">以上就是rsync服务的启动&#xff0c;下面我们开始介绍如何关闭rsync服务。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>8.2 </strong><strong>关闭rsync服务</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">要关闭rsync服务&#xff0c;如果是源码方式安装的&#xff0c;我们可以直接通过pkill rsync命令进行关闭。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">pkill rsync</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121195266993.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">如果是通过yum方式进行安装的&#xff0c;我们可以通过关闭xinetd服务来达到关闭rsync服务的目的。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">/etc/init.d/xinetd stop</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121206677778.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">除了以上两种方法之外&#xff0c;我们还可以通过比较暴力的方法关闭rsync服务。如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">kill -9 6780</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121215587405.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>九、rsync同步实例</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">rsync服务正常启动后&#xff0c;我们就要切换到客户端来实际同步一个文件。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">现在rsync服务器是192.168.199.247&#xff0c;rsync客户端为192.168.199.248。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">首先在rsync服务器192.168.199.247的www模块下/www/目录下新建一个文件ilanni247&#xff0c;内容如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">ifconfig eth1|grep &#34;inet addr&#34;|awk '{print $2}'|cut -d: -f2</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">vi /www/ilanni247</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">this is server 247 www.</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121228706905.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">然后在rsync客户端192.168.199.248的/root下新建一个www目录&#xff0c;并在此目录下创建一个文件ilanni248&#xff0c;内容如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">ifconfig eth1|grep &#34;inet addr&#34;|awk '{print $2}'|cut -d: -f2</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">mkdir www</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">vi /www/ilanni248</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">this is client 248 www.</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121243084432.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>9.1 </strong><strong>把248文件推送到247上</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">要把rsync客户端192.168.199.248文件推送到rsync服务器192.168.199.247上&#xff0c;我们需要使用到rsync帮助命令中的第三种命令&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync ... SRC ... HOST::DEST</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">有关这个命令的作用&#xff0c;我们在前面已经介绍过了&#xff0c;就是把本地的文件同步到远程服务器上。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">具体使用方法&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -avz /root/www/* apache&#64;192.168.199.247::www --password-file&#61;/etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121260739859.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121268392460.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">这条命令的作用是把/root/www目录下的所有文件同步到192.168.199.247服务器的www模块下。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">如果要把/root/www/ilannidir目录本身同步到192.168.199.247服务器的www模块下的话&#xff0c;命令如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -azv /root/www/ilannidir apache&#64;192.168.199.247::www --password-file&#61;/etc/rsyncd.password</span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">或者:</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -azv /root/www/ilannidir apache&#64;192.168.199.247::www --password-file&#61;/etc/rsyncd.password</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121282145473.png"></a></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121290733343.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">通过上图&#xff0c;我们可以看到本地确实已经把文件与目录同步到rsync服务器上了。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>9.2 </strong><strong>把247文件拉取到248上</strong></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">要把rsync服务器192.168.199.247的文件拉取到rsync客户端192.168.199.248上&#xff0c;我们需要使用到rsync帮助命令中的第六个命令&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync ... HOST::SRC </span></span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">有关这个命令的作用&#xff0c;我们在前面已经介绍过了&#xff0c;就是把远程机器的文件同步到本地。</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">具体使用方法&#xff0c;如下&#xff1a;</span></span></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;"><span style="color:#ff0000;">rsync -avz apache&#64;192.168.199.247::www --password-file&#61;/etc/rsyncd.password /root/www/</span></span></span></p>
<p style="text-align:center;"><ahref="https://images0.cnblogs.com/blog/62984/201501/141121299172686.png"></a></p>
<p style="margin-left:auto;text-align:justify;"><span style="color:#000000;"><span style="background-color:#ffffff;">这条命令的作用是把192.168.199.247服务器的www模块下所有文件同步到本机的/root/www/目录下。</span></span></p>
                </div>
      </div>
      <div id="treeSkill"></div>
页: [1]
查看完整版本: linux文件同步之rsync学习(一)