【无标题】rsync

<main>
<script type="text/javascript">
    function getQueryString(name) {   
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象  
      var r = window.location.search.substr(1).match(reg);  //匹配目标参数
      if( r != null ) return decodeURIComponent( r[2] ); return '';   
    }
    function stripscript(s){ 
      var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%]") 
      var rs = ""; 
      for (var i = 0; i < s.length; i++) { 
        rs = rs+s.substr(i, 1).replace(pattern, ''); 
      } 
      return rs; 
    }
    var blogHotWords = stripscript(getQueryString('utm_term')).length > 1 ? stripscript(getQueryString('utm_term')) : ''
</script>
<div class="blog-content-box">
        <div class="article-header-box">
        <div class="article-header">
            <div class="article-title-box">
                <h1 class="title-article" id="articleContentId">rsync(一):基本命令和用法</h1>
            </div>
            <div class="article-info-box">
                <div class="article-bar-top">
                    <img class="article-type-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/reprint.png" alt="">
                    <div class="bar-content">
                    <a class="follow-nickName " href="https://blog.csdn.net/qq_32706349" target="_blank" rel="noopener">不进则退2020</a>
                    <span class="time">2019-06-11 17:40:19</span>
                    <img class="article-read-img article-heard-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/articleReadEyes.png" alt="">
                    <span class="read-count">247336</span>
                    <a id="blog_detail_zk_collection" class="un-collection" data-report-click="{&quot;mod&quot;:&quot;popu_823&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4232&quot;,&quot;ab&quot;:&quot;new&quot;}">
                        <img class="article-collect-img article-heard-img un-collect-status isdefault" style="display:inline-block" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollect.png" alt="">
                        <img class="article-collect-img article-heard-img collect-status isactive" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" alt="">
                        <span class="name">收藏</span>
                        <span class="get-collection">
                            289
                        </span>
                    </a>
                    </div>
                </div>
                <div class="blog-tags-box">
                    <div class="tags-box artic-tag-box">
                            <span class="label">分类专栏:</span>
                                <a class="tag-link" href="https://blog.csdn.net/qq_32706349/category_7713794.html" target="_blank" rel="noopener">linux</a>
                    </div>
                </div>
                <div class="slide-content-box">
                </div>
                <div class="operating">
                </div>
            </div>
        </div>
    </div>
        <div id="blogColumnPayAdvert">
            <div class="column-group">
                <div class="column-group-item column-group0 column-group-item-one">
                    <div class="item-l">
                        <a class="item-target" href="https://blog.csdn.net/qq_32706349/category_7713794.html" target="_blank" title="linux" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.6332&quot;}">
                            <img class="item-target" src="https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64" alt="">
                            <span class="title item-target">linux</span>
                        </a>
                        <span class="dec">专栏收录该内容</span>
                    </div>
                    <div class="item-m">
                        <span>10 篇文章</span>
                        <span>1 订阅</span>
                    </div>
                    <div class="item-r">
                            <a class="item-target article-column-bt articleColumnFreeBt" data-id="7713794">订阅专栏</a>
                    </div>
                </div>
            </div>
        </div>
    <article class="baidu_pl">
        <div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-1a85854398.css">
                <div id="content_views" class="htmledit_views">
                    <p>原文地址:<a href="https://www.cnblogs.com/f-ck-need-u/p/7220009.html#blog21">https://www.cnblogs.com/f-ck-need-u/p/7220009.html#blog21</a></p> 
<h1 id="auto_id_0"><a name="t0"></a>2.1 说在前面的话</h1> 
<p>rsync官方网站:&nbsp;<a href="https://www.samba.org/ftp/rsync/rsync.html">https://www.samba.org/ftp/rsync/rsync.html</a></p> 
<p>rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。</p> 
<p>rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的。事实上,rsync有一套自己的算法,其算法原理以及rsync对算法实现的机制可能比想象中要复杂一些。平时使用rsync实现简单的备份、同步等功能足以,没有多大必要去深究这些原理性的内容。但是想要看懂rsync命令的man文档、使用"-vvvv"分析rsync执行过程,以及实现rsync更强大更完整的功能,没有这些理论知识的支持是绝对不可能实现的。本篇文章将简单介绍rsync的使用方法和它常用的功能。<strong>在本篇文章之后的下几篇文章中,将介绍inotify+rsync和sersync,再之后将详细解释rsync相关的原理,其中包括官方技术报告的翻译(即算法原理)、rsync同步的整个过程(也是官方推荐文章的翻译),然后专门使用一篇文章通过示例来详细解释rsync算法原理,最后给出rsync的man文档翻译。</strong>希望各位朋友能藉此深入rsync。</p> 
<p>回归正题,以下是rsync相关基础内容。</p> 
<p><a name="blog22"></a></p> 
<h1 id="auto_id_1"><a name="t1"></a>2.2 rsync同步基本说明</h1> 
<p>rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。</p> 
<p>不考虑rsync的实现细节,就文件同步而言,涉及了源文件和目标文件的概念,还涉及了以哪边文件为同步基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。反之,如果想让本地主机上的文件和目标主机上的文件保持同步,则目标主机上的文件为同步基准,实现方式是将目标主机上的文件作为源文件拉取到本地。当然,要保持本地的两个文件相互同步,rsync也一样能实现,这就像Linux中cp命令一样,以本地某文件作为源,另一文件作为目标文件,但请注意,虽然rsync和cp能达到相同的目的,但它们的实现方式是不一样的。</p> 
<p>既然是文件同步,在同步过程中必然会涉及到源和目标两文件之间版本控制的问题,例如是否要删除源主机上没有但目标上多出来的文件,目标文件比源文件更新(newer than source)时是否仍要保持同步,遇到软链接时是拷贝软链接本身还是拷贝软链接所指向的文件,目标文件已存在时是否要先对其做个备份等等。</p> 
<p><strong>rsync同步过程中由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式。</strong></p> 
<p>(1).检查模式是指按照指定规则来检查哪些文件需要被同步,例如哪些文件是明确被排除不传输的。<strong>默认情况下,rsync使用"quick check"算法快速检查源文件和目标文件的大小、mtime(修改时间)是否一致,如果不一致则需要传输。</strong>当然,也可以通过在rsync命令行中指定某些选项来改变quick check的检查模式,比如"--size-only"选项表示"quick check"将仅检查文件大小不同的文件作为待传输文件。rsync支持非常多的选项,其中检查模式的自定义性是非常有弹性的。</p> 
<p>(2).同步模式是指在文件确定要被同步后,在同步过程发生之前要做哪些额外工作。例如上文所说的是否要先删除源主机上没有但目标主机上有的文件,是否要先备份已存在的目标文件,是否要追踪链接文件等额外操作。rsync也提供非常多的选项使得同步模式变得更具弹性。</p> 
<p>相对来说,为rsync手动指定同步模式的选项更常见一些,只有在有特殊需求时才指定检查模式,因为大多数检查模式选项都可能会影响rsync的性能。</p> 
<p><a name="blog23"></a></p> 
<h1 id="auto_id_2"><a name="t2"></a>2.3 rsync三种工作方式</h1> 
<p>以下是rsync的语法:</p> 
<pre>Local:  rsync [OPTION...] SRC... [DEST]
 
Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
 
Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST</pre> 
<p>由此语法可知,rsync有三种工作方式:</p> 
<p>(1).本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。</p> 
<p>(2).本地主机使用远程shell和远程主机通信。命令行语法格式为上述"Access via remote shell"段的格式。</p> 
<p>(3).本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access via rsync daemon"段的格式。</p> 
<p>前两者的本质是通过管道通信,即使是远程shell。而方式(3)则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端的连接。</p> 
<p>但是,还有<strong>第四种工作方式:</strong><strong>通过远程shell也能临时启动一个rsync daemon,这不同于方式(3),它不要求远程主机上事先启动rsync服务,而是临时派生出rsync daemon,它是单用途的一次性daemon</strong>,仅用于临时读取daemon的配置文件,当此次rsync同步完成,远程shell启动的rsync daemon进程也会自动消逝。此通信方式的命令行语法格式同"Access via rsync daemon",但要求options部分必须明确指定"--rsh"选项或其短选项"-e"。</p> 
<p>以下是对rsync语法的简单说明,由于rsync支持一百多个选项,所以此处只介绍几个常用选项。完整的选项说明以及rsync的使用方法见我翻译的"<a href="http://www.cnblogs.com/f-ck-need-u/p/7221713.html">man rsync</a>"。</p> 
<pre>Local:  rsync [OPTION...] SRC... [DEST]
 
Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
 
Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST</pre> 
<p>其中,第一个路径参数一定是源文件路径,即作为同步基准的一方,可以同时指定多个源文件路径。最后一个路径参数则是目标文件路径,也就是待同步方。路径的格式可以是本地路径,也可以是使用user@host:path或user@host::path的远程路径,如果主机和path路径之间使用单个冒号隔开,表示使用的是远程shell通信方式,而使用双冒号隔开的则表示的是连接rsync daemon。另外,连接rsync daemon时,还提供了URL格式的路径表述方式rsync://user@host/path。</p> 
<p><strong>如果仅有一个SRC或DEST参数,则将以类似于"ls -l"的方式列出源文件列表(只有一个路径参数,总会认为是源文件),而不是复制文件。</strong></p> 
<p>如果对rsync不熟悉,可暂先只了解本地以及远程shell格式的user@host:path路径格式。例如:</p> 
<pre>[root@xuexi ~]# rsync /etc/fstab /tmp                # 在本地同步
[root@xuexi ~]# rsync -r /etc 172.16.10.5:/tmp       # 将本地/etc目录拷贝到远程主机的/tmp下,以保证远程/tmp目录和本地/etc保持同步
[root@xuexi ~]# rsync -r 172.16.10.5:/etc /tmp       # 将远程主机的/etc目录拷贝到本地/tmp下,以保证本地/tmp目录和远程/etc保持同步
[root@xuexi ~]# rsync /etc/                          # 列出本地/etc/目录下的文件列表
[root@xuexi ~]# rsync 172.16.10.5:/tmp/              # 列出远程主机上/tmp/目录下的文件列表</pre> 
<p>另外,使用rsync一定要注意的一点是<strong>,源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身。</strong>例如:</p> 
<pre>[root@xuexi ~]# rsync -a /etc /tmp
[root@xuexi ~]# rsync -a /etc/ /tmp</pre> 
<p>第一个命令会在/tmp目录下创建etc目录,而第二个命令不会在/tmp目录下创建etc目录,源路径/etc/中的所有文件都直接放在/tmp目录下。</p> 
<p><a name="blog24"></a></p> 
<h1 id="auto_id_3"><a name="t3"></a>2.4 选项说明和示例</h1> 
<p>接下来是rsync的选项说明。</p> 
<pre>-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
-n --dry-run  :仅测试传输,而不实际传输。常和"-vvvv"配合使用来查看rsync是如何工作的。
-a --archive  :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-r --recursive:递归到目录中去。
-t --times:保持mtime属性。<strong>强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新
          :检查出mtime不同从而导致增量传输无效。</strong>
-o --owner:保持owner属性(属主)。
-g --group:保持group属性(属组)。
-p --perms:保持perms属性(权限,不包括特殊权限)。
-D        :是"--device --specials"选项的组合,即也拷贝设备文件和特殊文件。
-l --links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。
-z        :传输时进行压缩提高效率。
-R --relative:使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性。用法见下文示例。
--size-only :默认算法是检查文件大小和mtime不同的文件,使用此选项将只检查文件大小。
-u --update :仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。
-d --dirs   :以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。
--max-size  :限制rsync传输的最大文件大小。可以使用单位后缀,还可以是一个小数值(例如:"--max-size=1.5m")
--min-size  :限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。
--exclude   :指定排除规则来排除不需要传输的文件。
--delete    :以SRC为主,对DEST进行同步。多则删之,少则补之。注意"--delete"是在接收端执行的,所以它是在
            :exclude/include规则生效之后才执行的。
-b --backup :对目标上已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀。
--backup-dir:指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。
-e          :指定所要使用的远程shell程序,默认为ssh。
--port      :连接daemon时使用的端口号,默认为873端口。
--password-file:daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。
-W --whole-file:rsync将不再使用增量传输,而是全量传输。在网络带宽高于磁盘带宽时,该选项比增量传输更高效。
--existing  :要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。
--ignore-existing:要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能,见下文示例。
--remove-source-files:要求删除源端已经成功传输的文件。</pre> 
<p>rsync的选项非常多,能够实现非常具有弹性的功能,以上选项仅仅只是很小一部分常用的选项,关于更完整更详细的选项说明,见我的<a href="http://www.cnblogs.com/f-ck-need-u/p/7221713.html">rsync man手册翻译</a>。</p> 
<p>虽然选项非常多,但最常用的选项组合是"avz",即压缩和显示部分信息,并以归档模式传输。</p> 
<p><a name="blog241"></a></p> 
<h2 id="auto_id_4"><a name="t4"></a>2.4.1 基础示例</h2> 
<p>以下是几个本地同步示例和通过远程shell实现的同步示例,示例中没有使用"-a"选项,目的是为了更清晰地说明各选项的作用。</p> 
<p><strong>(1).将/etc/fstab拷贝到/tmp目录下。</strong></p> 
<pre>[root@xuexi ~]# rsync /etc/fstab /tmp</pre> 
<p><strong>(2).将/etc/cron.d目录拷贝到/tmp下。</strong></p> 
<pre>[root@xuexi ~]# rsync -r /etc/cron.d /tmp</pre> 
<p>该命令会在目标主机上创建/tmp/cron.d目录,并将/etc/cron.d/中的文件放入到/tmp/cron.d/目录中,也就是说默认情况下,是不会在目录路径下创建上层目录/etc的。</p> 
<p><a name="blogRelative"></a></p> 
<p><strong>(3).将/etc/cron.d目录拷贝到/tmp下,但要求在/tmp下也生成etc子目录。</strong></p> 
<pre>[root@xuexi ~]# rsync -R -r /etc/cron.d /tmp</pre> 
<p>其中"-R"选项表示使用相对路径,此相对路径是以目标目录为根的。对于上面的示例,表示在目标上的/tmp下创建etc/cron.d目录,即/tmp/etc/cron.d,etc/cron.d的根"/"代表的就是目标/tmp。</p> 
<p>如果要拷贝的源路径较长,但只想在目标主机上保留一部分目录结构,例如要拷贝/var/log/anaconda/*到/tmp下,但只想在/tmp下保留从log开始的目录,如何操作?使用一个点代表相对路径的起始位置即可,也就是将长目录进行划分。</p> 
<pre>[root@xuexi ~]# rsync -R -r /var/./log/anaconda /tmp</pre> 
<p>这样,从点开始的目录都是相对路径,其相对根目录为目标路径。所以对于上面的示例,将在目标上创建/tmp/log/anaconda/*。</p> 
<p><strong>(4).对远程目录下已存在文件做一个备份。</strong></p> 
<pre>[root@xuexi ~]# rsync -R -r --backup /var/./log/anaconda /tmp</pre> 
<p>这样在目标目录下,已存在的文件就被做一个备份,备份文件默认使用"~"做后缀,可以使用"--suffix"指定备份后缀。</p> 
<pre>[root@xuexi tmp]# ll log/anaconda/
total 3112
-rw------- 1 root root    6668 Jul 14 12:45 anaconda.log
-rw------- 1 root root    6668 Jul 14 11:44 anaconda.log~
-rw------- 1 root root    3826 Jul 14 12:45 ifcfg.log
-rw------- 1 root root    3826 Jul 14 11:44 ifcfg.log~
-rw------- 1 root root 1102699 Jul 14 12:45 journal.log
-rw------- 1 root root 1102699 Jul 14 11:44 journal.log~
-rw------- 1 root root       0 Jul 14 12:45 ks-script-1uLekR.log
-rw------- 1 root root       0 Jul 14 11:44 ks-script-1uLekR.log~
-rw------- 1 root root       0 Jul 14 12:45 ks-script-iGpl4q.log
-rw------- 1 root root       0 Jul 14 11:44 ks-script-iGpl4q.log~
-rw------- 1 root root  160420 Jul 14 12:45 packaging.log
-rw------- 1 root root  160420 Jul 14 11:44 packaging.log~
-rw------- 1 root root   27906 Jul 14 12:45 program.log
-rw------- 1 root root   27906 Jul 14 11:44 program.log~
-rw------- 1 root root   78001 Jul 14 12:45 storage.log
-rw------- 1 root root   78001 Jul 14 11:44 storage.log~
-rw------- 1 root root  197961 Jul 14 12:45 syslog
-rw------- 1 root root  197961 Jul 14 11:44 syslog~</pre> 
<p>可以使用"--backup-dir"指定备份文件保存路径,但要求保存路径必须存在。</p> 
<pre>[root@xuexi ~]# mkdir /tmp/log_back

[root@xuexi ~]# rsync -R -r --backup --backup-dir=/tmp/log_back /var/./log/anaconda /tmp</pre> 
<p>指定备份路径后,默认将不会加备份后缀,除非使用"--suffix"显式指定后缀,如"--suffix=~"。</p> 
<pre>[root@xuexi tmp]# tree /tmp/log_back/
/tmp/log_back/
└── log
    └── anaconda
        ├── anaconda.log
        ├── ifcfg.log
        ├── journal.log
        ├── ks-script-1uLekR.log
        ├── ks-script-iGpl4q.log
        ├── packaging.log
        ├── program.log
        ├── storage.log
        └── syslog</pre> 
<p><strong>(5).指定ssh连接参数,如端口、连接的用户、ssh选项等。</strong></p> 
<pre>[root@xuexi tmp]# &gt;~/.ssh/known_hosts   # 先清空host key以便下面的测试

[root@xuexi tmp]# rsync -e "ssh -p 22 -o StrictHostKeyChecking=no" /etc/fstab 172.16.10.5:/tmp
Warning: Permanently added '172.16.10.5' (RSA) to the list of known hosts.
root@172.16.10.5's password:</pre> 
<p>可见直接指定ssh参数是生效的。</p> 
<p><strong>(6)."--existing"和"--ignore-existing"</strong></p> 
<p>"--existing"是只更新目标端已存在的文件。</p> 
<p>目前/tmp/{a,b}目录中内容如下,bashrc在a目录中,crontab在b目录中,且a目录中多了一个c子目录。</p> 
<pre>[root@xuexi ~]# tree /tmp/{a,b}
/tmp/a
├── bashrc
├── c
│   └── find
├── fstab
├── profile
└── rc.local
/tmp/b
├── crontab
├── fstab
├── profile
└── rc.local
 
1 directory, 9 files</pre> 
<p>使用"--existing"选项使得只更新目标端已存在的文件。</p> 
<pre>[root@xuexi ~]# rsync -r -v --existing /tmp/a/ /tmp/b           
sending incremental file list
fstab
profile
rc.local
 
sent 2972 bytes  received 70 bytes  6084.00 bytes/sec
total size is 204755  speedup is 67.31</pre> 
<p>结果只有3个目标上已存在的文件被更新了,由于目标上没有c目录,所以c目录中的文件也没有进行传输。</p> 
<p>而"--ignore-existing"是更新目标端不存在的文件。</p> 
<pre>[root@xuexi ~]# rsync -r -v --ignore-existing /tmp/a/ /tmp/b
sending incremental file list
bashrc
c/
c/find
 
sent 202271 bytes  received 54 bytes  404650.00 bytes/sec
total size is 204755  speedup is 1.01</pre> 
<p>"--existing"和"--ignore-existing"结合使用时,有个特殊功效,当它们结合"--delete"使用的时候,文件不会传输,但会删除receiver端额外多出的文件。</p> 
<pre><strong>$ mkdir a b
$ touch a/{1..4}.txt
$ touch b/</strong><strong>a.log</strong>

<strong>$ rsync </strong><strong>-nrv --delete a/ b/</strong>
sending incremental file list
deleting a.log
1.txt
2.txt
3.txt
4.txt
 
sent 118 bytes  received 33 bytes  302.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

<strong>$ rsync </strong><strong>-nrv --existing --ignore-existing --delete a/ b/</strong>
sending incremental file list
deleting a.log
 
sent 106 bytes  received 21 bytes  254.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)</pre> 
<p>实际上,"--existing"和"--ingore-existing"是传输规则,只会影响receiver要求让sender传输的文件列表,在receiver决定哪些文件需要传输之前的过程,是这两个选项无法掌控的,所以各种规则、"--delete"等操作都不会被这两个选项影响。</p> 
<p><strong>(7)."--remove-source-files"删除源端文件。</strong></p> 
<p>使用该选项后,源端已经更新成功的文件都会被删除,源端所有未传输或未传输成功的文件都不会被移除。未传输成功的原因有多种,如exclude排除了,"quick check"未选项该文件,传输中断等等。</p> 
<p>总之,显示在"rsync -v"被传输列表中的文件都会被移除。如下:</p> 
<pre>[root@xuexi ~]# rsync -r -v --remove-source-files /tmp/a/anaconda /tmp/a/audit /tmp       
sending incremental file list
<strong>anaconda</strong><strong>/anaconda.log
anaconda/ifcfg.log
anaconda/journal.log
anaconda/ks-script-1uLekR.log
anaconda/ks-script-iGpl4q.log
anaconda/packaging.log
anaconda/program.log
anaconda/storage.log
anaconda/syslog
audit/</strong><strong>audit.log</strong>
 
sent 4806915 bytes  received 204 bytes  9614238.00 bytes/sec
total size is 4805676  speedup is 1.00</pre> 
<p>上述显示出来的文件在源端全部被删除。</p> 
<p><a name="blog242"></a></p> 
<h2 id="auto_id_5"><a name="t5"></a>2.4.2 "--exclude"排除规则</h2> 
<p>使用"--exclude"选项指定排除规则,排除那些不需要传输的文件。</p> 
<pre>[root@xuexi tmp]# rsync -r -v --exclude="anaconda/*.log" /var/log/anaconda /var/log/audit /tmp
sending incremental file list
anaconda/
anaconda/syslog
audit/
audit/audit.log
 
sent 3365629 bytes  received 58 bytes  6731374.00 bytes/sec
total size is 3365016  speedup is 1.00</pre> 
<p>上例中只排除了anaconda目录中的log文件,但是audit目录中的log文件是正常传输的。</p> 
<p>注意,一个"--exclude"只能指定一条规则,要指定多条排除规则,需要使用多个"--exclude"选项,或者将排除规则写入到文件中,然后使用"--exclude-from"选项读取该规则文件。</p> 
<p>另外,除了"--exclude"排除规则,还有"--include"包含规则,顾名思义,它就是筛选出要进行传输的文件,所以include规则也称为传输规则。它的使用方法和"--exclude"一样。如果一个文件即能匹配排除规则,又能匹配包含规则,则先匹配到的立即生效,生效后就不再进行任何匹配。</p> 
<p>最后,关于规则,最重要的一点是它的作用时间。<strong>当发送端敲出rsync命令后,rsync将立即扫描命令行中给定的文件和目录(扫描过程中还会按照目录进行排序,将同一个目录的文件放在相邻的位置),这称为拷贝树(copy tree),扫描完成后将待传输的文件或目录记录到文件列表中,然后将文件列表传输给接收端。而筛选规则的作用时刻是在扫描拷贝树时,所以会根据规则来匹配并决定文件是否记录到文件列表中(严格地说是会记录到文件列表中的,只不过排除的文件会被标记为hide隐藏起来),只有记录到了文件列表中的文件或目录才是真正需要传输的内容。换句话说,筛选规则的生效时间在rsync整个同步过程中是非常靠前的,它会影响很多选项的操作对象,最典型的如"--delete"。</strong>也许,你看完这一整篇文章都没感觉到这一点的重要性,但如果你阅读rsync的man文档或者学习rsync的原理,你一定会深有体会。</p> 
<p>实际上,排除规则和包含规则都只是"--filter"筛选规则的两种特殊规则。"--filter"比较复杂,它有自己的规则语法和匹配模式,由于篇幅有限,以及考虑到本文的难度定位,"--filter"规则不便在此多做解释,仅简单说明下规则类,帮助理解下文的"--delete"。</p> 
<p>以下是rsync中的规则种类,不解之处请结合下文的"--delete"分析:</p> 
<p>(1).exclude规则:即排除规则,只作用于发送端,被排除的文件不会进入文件列表(实际上是加上隐藏规则进行隐藏)。</p> 
<p>(2).include规则:即包含规则,也称为传输规则,只作用于发送端,被包含的文件将明确记录到文件列表中。</p> 
<p>(3).hide规则:即隐藏规则,只作用于发送端,隐藏后的文件对于接收端来说是看不见的,也就是说接收端会认为它不存在于源端。</p> 
<p>(4).show规则:即显示规则,只作用于发送端,是隐藏规则的反向规则。</p> 
<p>(5).protect规则:即保护规则,该规则只作用于接收端,被保护的文件不会被删除掉。</p> 
<p>(6).risk规则:即取消保护规则。是protect的反向规则。</p> 
<p>除此之外,还有一种规则是"clear规则",作用是删除include/exclude规则列表。</p> 
<p><a name="blog2421"></a></p> 
<h3 id="auto_id_6"><a name="t6"></a>2.4.2.1 如何一次写对exclude规则</h3> 
<p>很多人写不来规则,总发现写出来后没有生效,要写成功一次规则得要不断地进行调试、调试、调试,令人无比心烦。</p> 
<p>其实很多工具的规则写法是类似的,比如tar也一样。规则写好后不生效的原因一般有两种:绝对路径和相对路径的问题、尾随斜线的问题。</p> 
<p>一般来说,操作的路径是绝对路径,那么规则里必须也写绝对路径,而且必须写完整的绝对路径。操作的路径是相对路径,那么规则里必须写相对路径,从哪里开始相对可能和工具有关。比如要操作路径"/abc/def",想要筛选def下的所有txt文件,必须写成"/abc/def/*.txt",如果操作路径是"abc/def",那么要筛选这个目录下的所有txt文件,可能需要写成"abc/def/*.txt",也有可能写成"*.txt",甚至写成"def/*.txt",写成哪种形式依赖于这个软件如何解析相对路径。</p> 
<p>对于rsync来说,要更复杂一些,因为除了bash的相对路径外,它自身还提供了一个相对路径的解析规则,而且尾随斜线也会影响规则的写法。这就是为什么写rsync规则非常麻烦的原因。</p> 
<p>我这里提供一个判断规则写法的方式,纯属我个人的经验总结:<strong>使用"-n"选项是dry run模式,也就是只测试不传输,"-i"选项是输出要传输文件的路径</strong>。"-i"只是一个便捷性选项,可以替换成其它选项来自定义输出格式,有时候通过这些信息来做一些判断是非常有用的,具体的可以翻man手册。</p> 
<pre>root:~$ rsync -nr -i a b/
cd+++++++++ a/
&gt;f+++++++++ a/1.txt
&gt;f+++++++++ a/2.txt
&gt;f+++++++++ a/3.txt
&gt;f+++++++++ a/4.txt</pre> 
<p>这里已经显示了传输文件的路径"a/*",也就是说包括了目录a,且是相对路径的。所以要写规则时,需要加上这个a路径,比如下面的排除规则。</p> 
<pre>root:~$ rsync -nr -i --exclude="a/2.txt"  a b/
cd+++++++++ a/
&gt;f+++++++++ a/1.txt
&gt;f+++++++++ a/3.txt
&gt;f+++++++++ a/4.txt

root:~$ rsync -nr -i --exclude="a/*.txt"  a b/
cd+++++++++ a/</pre> 
<p>如果上面的传输路径a加上尾随斜线,再看-i的输出路径信息,发现已经改变了:</p> 
<pre>root:~$ rsync -nr -i a/ b/
&gt;f+++++++++ 1.txt
&gt;f+++++++++ 2.txt
&gt;f+++++++++ 3.txt
&gt;f+++++++++ 4.txt</pre> 
<p>所以这时的排除规则中不应该包含a目录前缀:</p> 
<pre>root:~$ rsync -nr -i --exclude="2.txt" ./a/ b/
&gt;f+++++++++ 1.txt
&gt;f+++++++++ 3.txt
&gt;f+++++++++ 4.txt</pre> 
<p><a name="blog243"></a></p> 
<h2 id="auto_id_7"><a name="t7"></a>2.4.3 "--delete"解释</h2> 
<p>使用"--delete"选项后,接收端的rsync会先删除目标目录下已经存在,但源端目录不存在的文件。也就是"多则删之,少则补之"。</p> 
<p>例如,先实现一次同步,再向目标目录中拷贝一个新文件,这样目标目录中就比源目录多出一个文件。</p> 
<pre>[root@xuexi ~]# rsync -r /etc/cron.d /tmp/

[root@xuexi ~]# cp /etc/fstab /tmp/cron.d/

[root@xuexi ~]# ls /tmp/cron.d/
0hourly  fstab  raid-check  sysstat</pre> 
<p>再使用"--delete"选项,这时会将目标端多出的文件给删除掉,然后进行同步。</p> 
<pre>[root@xuexi ~]# rsync -r -v /etc/cron.d /tmp --delete
sending incremental file list
<strong>deleting cron.d</strong><strong>/</strong><strong>fstab</strong>
cron.d/0hourly
cron.d/raid-check
cron.d/sysstat
 
sent 704 bytes  received 70 bytes  1548.00 bytes/sec
total size is 471  speedup is 0.61</pre> 
<p>这样的行为实现了远程删除的功能,对于作用于本地的rsync,也就实现了rm的本地删除功能。而且,如果使用空目录作为源目录,则它的作用是清空目录上的整个目录。</p> 
<p>如果将"--delete"选项和"--exclude"选项一起使用,则被排除的文件不会被删除。例如:</p> 
<pre>[root@xuexi ~]# rsync -r /var/log/anaconda /var/log/audit /tmp  # 先进行一次同步以便测试

[root@xuexi ~]# cp /etc/fstab /tmp/anaconda/                    # 拷贝一个新文件到目标目录以便测试

[root@xuexi ~]# rsync -r -v --exclude="anaconda/*.log" /var/log/anaconda /var/log/audit /tmp --delete
sending incremental file list
<strong>deleting anaconda</strong><strong>/</strong><strong>fstab</strong>
anaconda/syslog
audit/audit.log
 
sent 3406190 bytes  received 52 bytes  6812484.00 bytes/sec
total size is 3405579  speedup is 1.00</pre> 
<p>结果发现只删除了"anaconda/fstab"文件,被"--exclude"规则匹配的anaconda/*.log文件都没有被删除。也就是网上所说的言论:exclude排除的文件不会被删除。</p> 
<p>结论是没错的,但我想很多人不知道为何会如此,也可能从来没想过为何会如此,所以我简单地做个说明。</p> 
<p><strong>在发送端将文件列表发送给接收端后,接收端的generator(要是不知道,你认为是某个就好了)进程会扫描每个文件列表中的信息,然后对列表中的每个信息条目都计算数据块校验码,最后将数据库校验码发给发送端,发送端通过校验码来匹配哪些数据块是需要传输的,这样就实现了增量传输的功能——只传输改变的部分,不会传输整个文件。而delete删除的时间点是generator进程处理每个文件列表时、生成校验码之前进行的,</strong>先将目标上存在但源上不存在的多余文件删除,这样就无需为多余的文件生成校验码。</p> 
<p>所以,delete动作是比"--exclude"规则更晚执行的,被"--exclude"规则排除的文件不会进入文件列表中,在执行了delete时会认为该文件不存在于源端,从而导致目标端将这些文件删除。但这是想当然的,尽管理论上确实是这样的,但是rsync为了防止众多误删除情况,提供了两种规则:保护规则(protect)和取消保护规则(risk)。默认情况下,"--delete"和"--exclude"一起使用时,虽然发送端的exclude规则将文件标记为隐藏,使得接收端认为这些被排除文件在源端不存在,但rsync会将这些隐藏文件标记为保护文件,使得它们不受delete行为的影响,这样delete就删除不了这些被排除的文件。如果还是想要强行删除被exclude排除的文件,可以使用"--delete-excluded"选项强制取消保护,这样即使被排除的文件也会被删除。</p> 
<p>那么现在,是否理解了网上的言论"exclude排除的文件不会被删除"?</p> 
<p>除了"--delete",相关的选项还有"--delete-before"、"--delete-during"、"--delete-delay"等,它们都隐含了"--delete"选项,它们分别表示generator处理各个文件列表之前一次性全部删除待删除文件、处理文件列表时处理到哪个文件列表就删除该文件列表中的待删除文件,以及同步完所有数据后一次性删除所有待删除文件。</p> 
<p>举个例子,假如源端要传输3个目录a、b、c,在目标端a目录中有a1、a2、a3共3个文件需要被删除,b目录中有b1、b2、b3需要删除,同理c目录也一样c1、c2、c3需要被删除。</p> 
<p>如果是"--delete-before",则在目标端rsync刚启动时,就会把a1-a3、b1-b3、c1-c3一次性删除,然后才会处理文件列表中的a目录,处理完a后处理b,再是c。</p> 
<p>如果是"--delete-during",则在目标端rsync刚启动时,先处理文件列表中的a目录,处理a目录时发现此目录中有待删除文件a1-a3,顺手就删除它们,然后完成a目录的相关操作,再处理文件列表中的b目录,发现也有待删除文件b1-b3,顺手删除它们,同理c1-c3也如此。</p> 
<p>如果是"--delete-delay",则同步完文件列表中的a/b/c目录后,最后一次性删除a1-a3、b1-b3、c1-c3。</p> 
<p>其实"--delete"选项大多数情况下默认采用的就是"--delete-during"。</p> 
<p><a name="blog25"></a></p> 
<h1 id="auto_id_8"><a name="t8"></a>2.5 rsync daemon模式</h1> 
<p><a name="blog251"></a></p> 
<h2 id="auto_id_9"><a name="t9"></a>2.5.1 简单介绍</h2> 
<p>既然rsync通过远程shell就能实现两端主机上的文件同步,还要使用rsync的服务干啥?试想下,你有的机器上有一堆文件需要时不时地同步到众多机器上去,比如目录a、b、c是专门传输到web服务器上的,d/e、f、g/h是专门传输到ftp服务器上的,还要对这些目录中的某些文件进行排除,如果通过远程shell连接方式,无论是使用排除规则还是包含规则,甚至一条一条rsync命令地传输,这都没问题,但太过繁琐且每次都要输入同样的命令显得太死板。使用rsync daemon就可以解决这种死板问题。而且,rsync daemon是向外提供服务的,这样只要告诉了别人rsync的url路径,外人就能向ftp服务器一样获取文件列表并进行选择性地下载,所以,你所制定的列表,你的同事也可以获取到并使用。</p> 
<p>举个简单的例子,Linux内核官网www.kernel.org提供rsync的下载方式,官方给出的地址是rsync://rsync.kernel.org/pub,可以根据这个地址找出你想下载的内核版本。例如要找出linux-3.0.15版本的内核相关文件。</p> 
<pre>[root@xuexi ~]# rsync --no-motd -r -v -f "+ */" -f "+ linux-3.0.15*" -f "- *" -m rsync://rsync.kernel.org/pub/
receiving file list ... done
drwxr-xr-x         124 2017/07/14 20:27:22 .
drwxr-xr-x         178 2014/11/12 05:50:10 linux
drwxr-xr-x        4096 2017/06/27 05:46:27 linux/kernel
drwxr-xr-x      237568 2017/07/05 20:49:33 linux/kernel/v3.x
-rw-r--r--    76803806 2012/01/04 03:00:31 linux/kernel/v3.x/linux-3.0.15.tar.bz2
-rw-r--r--    96726195 2012/01/04 03:00:31 linux/kernel/v3.x/linux-3.0.15.tar.gz
-rw-r--r--         836 2012/01/04 03:00:31 linux/kernel/v3.x/linux-3.0.15.tar.sign
-rw-r--r--    63812604 2012/01/04 03:00:31 linux/kernel/v3.x/linux-3.0.15.tar.xz
 
sent 59 bytes  received 80.19K bytes  12.35K bytes/sec
total size is 237.34M  speedup is 2957.66</pre> 
<p>你无需关注上面的规则代表什么意思,需要关注的重点是通过rsync可以向外提供文件列表并提供相应的下载。</p> 
<p>同样,你还可以根据路径,将rsync daemon上的文件拉取到本地实现下载的功能。</p> 
<pre>[root@xuexi ~]# rsync --no-motd -avzP rsync://rsync.kernel.org/pub/linux/kernel/v3.x/linux-3.0.15.tar.bz2 /tmp
receiving incremental file list
linux-3.0.15.tar.bz2
     2834426   3%   300.51kB/s    0:40:22</pre> 
<p>下面就来介绍下rsync daemon。</p> 
<p>rsync daemon是"rsync --daemon"或再加上其他一些选项启动的,它会读取配置文件,默认是/etc/rsyncd.conf,并默认监听在873端口上,当外界有客户端对此端口发起连接请求,通过这个网络套接字就可以完成连接,以后与该客户端通信的所有数据都通过该网络套接字传输。</p> 
<p>rsync daemon的通信方式和传输通道与远程shell不同。<strong>远程shell连接的两端是通过管道完成通信和数据传输的,即使连接的一端是远程主机,当连接到目标端时,将在目标端上根据远程shell进程fork出rsync进程使其成为rsync server。而rsync daemon是事先在server端上运行好的rsync后台进程(根据启动选项,也可以设置为非后台进程),它监听套接字等待client端的连接,连接建立后所有通信方式都是通过套接字完成的。</strong></p> 
<p>注意,rsync中的server的概念从来就不代表是rsync daemon,server在rsync中只是一种通用称呼,只要不是发起rsync请求的client端,就是server端,你可以认为rsync daemon是一种特殊的server,其实daemon更应该称之为service。(之所以解释这一点,是避免各位初学的朋友在阅读man rsync过程中产生误解)</p> 
<p>以下是rsync client连接rsync daemon时的命令语法:</p> 
<pre>Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
      rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
      rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST</pre> 
<p>连接命令有两种类型,一种是rsync风格使用双冒号的"rsync user@host::src dest",一种是url风格的"rsync://user@host:port/src dest"。对于rsync风格的连接命令,如果想要指定端口号,则需要使用选项"--port"。</p> 
<p>上述语法中,其中daemon端的路径,如user@host::src,它的src代表的是模块名,而不是真的文件系统中的路径。关于rsync中的模块,相信见了下面的配置文件就会知道是什么意思。</p> 
<p><a name="blog252"></a></p> 
<h2 id="auto_id_10"><a name="t10"></a>2.5.2 daemon配置文件rsyncd.conf</h2> 
<p>默认"rsync --daemon"读取的配置文件为/etc/rsyncd.conf,有些版本的系统上可能该文件默认不存在。rsyncd.conf的配置见man rsyncd.conf。以下是部分内容:</p> 
<pre>[root@xuexi ~]# cat /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
 
# See rsyncd.conf man page for more options.
 
# configuration example:
 
# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
 
# [ftp1]
#        path = /home/ftp
#        comment = ftp export area</pre> 
<p>在上述示例配置文件中,先定义了一些全局选项,然后定义了[ftp1],这个用中括号包围的"[ftp1]"就是rsync中所谓的模块,ftp1为模块ID,必须保证唯一,每个模块中必须定义一项"path",path定义的是该模块代表的路径,例如此示例文件中,如果想请求ftp1模块,则在客户端使用"rsync user@host::ftp1",这表示访问user@host上的/home/ftp目录,如果要访问/home/ftp目录下的子目录www,则"rsync user@host::ftp1/www"。</p> 
<p>以下是常见的配置项,也算是一个配置示例:</p> 
<pre>######### 全局配置参数 ##########
port=888    # 指定rsync端口。默认873
uid = rsync # rsync服务的运行用户,默认是nobody,文件传输成功后属主将是这个uid
gid = rsync # rsync服务的运行组,默认是nobody,文件传输成功后属组将是这个gid
use chroot = no # rsync daemon在传输前是否切换到指定的path目录下,并将其监禁在内
max connections = 200 # 指定最大连接数量,0表示没有限制
timeout = 300         # 确保rsync服务器不会永远等待一个崩溃的客户端,0表示永远等待
motd file = /var/rsyncd/rsync.motd   # 客户端连接过来显示的消息
pid file = /var/run/rsyncd.pid       # 指定rsync daemon的pid文件
lock file = /var/run/rsync.lock      # 指定锁文件
log file = /var/log/rsyncd.log       # 指定rsync的日志文件,而不把日志发送给syslog
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  # 指定哪些文件不用进行压缩传输
 
###########下面指定模块,并设定模块配置参数,可以创建多个模块###########
[longshuai]        # 模块ID
path = /longshuai/ # 指定该模块的路径,该参数必须指定。启动rsync服务前该目录必须存在。rsync请求访问模块本质就是访问该路径。
ignore errors      # 忽略某些IO错误信息
read only = false  # 指定该模块是否可读写,即能否上传文件,false表示可读写,true表示可读不可写。所有模块默认不可上传
write only = false # 指定该模式是否支持下载,设置为true表示客户端不能下载。所有模块默认可下载
list = false       # 客户端请求显示模块列表时,该模块是否显示出来,设置为false则该模块为隐藏模块。默认true
hosts allow = 10.0.0.0/24 # 指定允许连接到该模块的机器,多个ip用空格隔开或者设置区间
hosts deny = 0.0.0.0/32   # 指定不允许连接到该模块的机器
auth users = rsync_backup # 指定连接到该模块的用户列表,只有列表里的用户才能连接到模块,用户名和对应密码保存在secrts file中,
                          # 这里使用的不是系统用户,而是虚拟用户。不设置时,默认所有用户都能连接,但使用的是匿名连接
secrets file = /etc/rsyncd.passwd # 保存auth users用户列表的用户名和密码,每行包含一个username:passwd。由于"strict modes"
                                  # 默认为true,所以此文件要求非rsync daemon用户不可读写。只有启用了auth users该选项才有效。
[xiaofang]    # 以下定义的是第二个模块
path=/xiaofang/
read only = false
ignore errors
comment = anyone can access</pre> 
<p>注意:</p> 
<p>(1).客户端推到服务端时,文件的属主和属组是配置文件中指定的uid和gid。但是客户端从服务端拉的时候,文件的属主和属组是客户端正在操作rsync的用户身份,因为执行rsync程序的用户为当前用户。</p> 
<p>(2).auth users和secrets file这两行不是一定需要的,省略它们时将默认使用匿名连接。但是如果使用了它们,则secrets file的权限必须是600。客户端的密码文件也必须是600。</p> 
<p>(3).关于secrets file的权限,实际上并非一定是600,只要满足除了运行rsync daemon的用户可读即可。是否检查权限的设定是通过选项strict mode设置的,如果设置为false,则无需关注文件的权限。但默认是yes,即需要设置权限。</p> 
<p>配置完后,再就是提供模块相关目录、身份验证文件等。</p> 
<pre>[root@xuexi ~]# useradd -r -s /sbin/nologin rsync

[root@xuexi ~]# mkdir /{longshuai,xiaofang}

[root@xuexi ~]# chown -R rsync.rsync /{longshuai,xiaofang}</pre> 
<p>提供模块longshuai身份验证文件,由于rsync daemon是以root身份运行的,所以要求身份验证文件对非root用户不可读写,所以设置为600权限。</p> 
<pre>[root@xuexi ~]# echo "rsync_backup:123456" &gt;&gt; /etc/rsyncd.passwd

[root@xuexi ~]# chmod 600 /etc/rsyncd.passwd </pre> 
<p>然后启动rsync daemon,启动方式很简单。</p> 
<pre>[root@xuexi ~]# rsync --daemon</pre> 
<p>如果是CentOS 7,则自带启动脚本。</p> 
<pre>[root@xuexi ~]# systemctl start rsyncd</pre> 
<p>看看该脚本的内容。</p> 
<pre>[root@xuexi ~]# cat /usr/lib/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
ConditionPathExists=/etc/rsyncd.conf
 
[Service]
EnvironmentFile=/etc/sysconfig/rsyncd
<strong>ExecStart</strong><strong>=/usr/bin/rsync --daemon --no-detach "$OPTIONS"</strong>
 
[Install]
WantedBy=multi-user.target</pre> 
<p>可以看到启动方法也仅仅只是多了一个"--no-detach",该选项表示rsync不将自己从终端上剥离。</p> 
<p>总之,启动好rysnc daemon后,它就监听在指定的端口上,等待客户端的连接。</p> 
<p>由于上述示例中的模块longshuai配置了身份验证功能,所以客户端连接时会询问密码。如果不想手动输入密码,则可以使用"--password-file"选项提供密码文件,密码文件中只有第一行才是传递的密码,其余所有的行都会被自动忽略。</p> 
<p>例如在客户端上:</p> 
<pre>[root@xuexi ~]# echo "123456" &gt; /tmp/rsync_passwd</pre> 
<p>然后使用该"--password-file"连接需要身份验证的longshuai模块。</p> 
<pre>[root@xuexi ~]# echo "123456" &gt; /tmp/rsync_passwd</pre> 
<p>如果需要访问模块中的某个文件,则:</p> 
<pre>[root@xuexi ~]# rsync --list-only --port 888 rsync_backup@172.16.l0.6::longshuai/a/b --password-file=/tmp/rsync_passwd</pre> 
<p>还可以使用url格式语法:</p> 
<pre>[root@xuexi ~]# rsync --list-only rsync://rsync_backup@172.16.l0.6:888/longshuai/a/b --password-file=/tmp/rsync_passwd</pre> 
<p><a name="blog26"></a></p> 
<h1 id="auto_id_11"><a name="t11"></a>2.6 远程shell方式连接使用daemon</h1> 
<p>在前文说了rsync有三种工作方式:本地同步模式、远程shell模式和rsync daemon模式。前两者是使用管道进行通信和传输数据的,后者是通过网络套接字进行通信和传输数据的,且rsync daemon要求在server端必须已经运行好rsync且监听在指定端口上。</p> 
<p>但rsync支持第4种工作方式:通过远程shell方式连接rsync daemon。也就是将第二种和第三种方式结合起来。虽然这种方式用的不多,但还是有必要稍微解释下,为你阅读rsync的man文档提供一些帮助。</p> 
<p>为了下面称呼的方便,暂且将通过远程shell连接使用daemon的方式成为"远程shell daemon",当然,官方并没有这样的术语,仅仅只是本人在此为了方便而如此称呼。</p> 
<p>远程shell daemon的方式严格地说是"远程shell通信方式+使用rsync daemon的功能"。<strong>所以它的通信方式和远程shell是一样的,在客户端发起远程shell连接,在server端fork远程shell进程以启动rsync进程,但这个rsync进程是临时的rsync daemon</strong>,它只读取配置文件中client所请求的模块部分,且只读取模块部分中的path和身份认证相关内容,(也就是说不会将全局配置项和其它模块项加载到内存,该模块下的其他配置也不会生效),当rsync操作完成,该rsync daemon就消逝并从内存中被清理。而且,远程shell daemon启动的临时daemon不会和已经在server端运行的rsync daemon冲突,它们可以并存。由于远程shell连接的最终目标是rsync模块,所以它只能使用rsync daemon语法。</p> 
<p>以下是语法格式:为了简洁,没有指定src还是dest,且以ssh这个远程shell为例。</p> 
<blockquote> 
 <p>rsync [options] --rsh=ssh auth_user@host::module</p> 
 <p>rsync [options] --rsh="ssh -l ssh_user" auth_user@host::module</p> 
 <p>rsync [options] -e "ssh -l ssh_user" auth_user@host::module</p> 
 <p>rsync [options] -e "ssh -l ssh_user" rsync://auth_user@host/module</p> 
</blockquote> 
<p>涉及了两个用户ssh_user和auth_user,由于使用的是远程shell通信方式,所以client要和server端建立ssh连接,ssh_user就是ssh连接server的用户。auth_user则是模块中的身份认证用户。如果不指定"ssh_user",则默认将使用auth_user,但很多时候auth_user都只是一个虚拟用户,这样就建立不了ssh连接导致失败,所以建议明确指定ssh_user和auth_user。</p> 
<p>举个例子就能说明上面的一切。以下是server端配置文件/etc/rsyncd.conf中的一个模块配置,稍后将从client端使用远程shell方式请求该模块。</p> 
<pre>[tmpdir]
path=/tmp
auth users=lisi
secrets file=/tmp/lisi_passwd</pre> 
<p>当前server端是没有rsync daemon在运行的。</p> 
<pre>[root@xuexi ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN    
tcp6       0      0 :::22                   :::*                    LISTEN    
tcp6       0      0 ::1:25                  :::*                    LISTEN</pre> 
<p>在客户端上使用以下命令:</p> 
<pre>[root@xuexi ~]# rsync --list-only -e "ssh -l root" lisi@172.16.10.6::tmpdir
root@172.16.10.6's password:
 
Password:</pre> 
<p>可以看到要求输入两次密码,第一次密码是root@XXX的密码,即建立ssh连接使用的密码,只有建立了ssh连接,才能在server上启动临时rsync daemon。第二次输入的密码Password是"auth users=lisi"对应的密码。</p>
                </div><div><div></div></div>
        </div>
        
    </article>
</div>
<div class="more-toolbox-new more-toolbox-active" id="toolBarBox">
    <div class="left-toolbox" style="position: fixed; z-index: 999; left: 770.667px; bottom: 0px; width: 1010px;">
        <div class="toolbox-left">
            <div class="profile-box"><a class="profile-href" target="_blank" href="https://blog.csdn.net/qq_32706349"><img class="profile-img" src="https://profile.csdnimg.cn/1/1/F/3_qq_32706349"><span class="profile-name">不进则退2020</span></a></div>
            <div class="profile-attend">
                    <a class="tool-attend tool-bt-button tool-bt-attend" href="javascript:;">关注</a>
                <a class="tool-item-follow active-animation" style="display:none;">关注</a>
            </div>
        </div>
        <div class="toolbox-middle">
        <ul class="toolbox-list">
            <li class="tool-item tool-item-size tool-active is-like" id="is-like">
            <a class="tool-item-href">
                <img style="display:none;" id="is-like-imgactive-animation-like" class="animation-dom active-animation" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarThumbUpactive.png" alt="">
                <img class="isactive" style="display:none" id="is-like-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2021Active.png" alt="">
                <img class="isdefault" style="display:block" id="is-like-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHeart2021White.png" alt="">  
                <span id="spanCount" class="count ">
                        55
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">点赞</span></div>
            </li>
            <li class="tool-item tool-item-size tool-active is-unlike" id="is-unlike">
            <a class="tool-item-href">
                <img class="isactive" style="margin-right:0px;display:none" id="is-unlike-imgactive" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newUnHeart2021Active.png" alt="">
                <img class="isdefault" style="margin-right:0px;display:block" id="is-unlike-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newUnHeart2021White.png" alt="">
                <span id="unlikeCount" class="count "></span>
            </a>
            <div class="tool-hover-tip"><span class="text space">踩</span></div>
            </li>
            <li class="tool-item tool-item-size tool-active tool-item-comment">
            <a class="tool-item-href" href="#commentBox">
                <img class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newComment2021White.png" alt="">
                <span class="count">
                    3
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">评论</span></div>
            </li>
            <li class="tool-item tool-item-size tool-active is-collection ">
            <a class="tool-item-href" href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4130&quot;,&quot;ab&quot;:&quot;new&quot;}">
                <img style="display:none" id="is-collection-img-collection" class="animation-dom active-animation" src="https://csdnimg.cn/release/blogv2/dist/pc/img/tobarCollectionActive.png" alt="">
                <img class="isdefault" id="is-collection-img" style="display:block" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectWhite.png" alt="">
                <img class="isactive" id="is-collection-imgactive" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCollectActive.png" alt="">
                <span class="count get-collection" id="get-collection">
                    289
                </span>
            </a>
            <div class="tool-hover-tip"><span class="text space">收藏</span></div>
            </li>
            <li class="tool-item tool-active">
                <a class="" href="javascript:;">
                    <img class="company active" id="health-companies" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newHealthCompanies1Active.gif" alt="一键三连">
                </a>
                <div class="tool-hover-tip three-click"><span class="text">一键三连</span></div>
            </li>
            <li class="tool-item tool-item-bar">
            </li>
            <li class="tool-item tool-item-size tool-active tool-QRcode" id="tool-share">
                <a class="tool-item-href" href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4129&quot;,&quot;ab&quot;:&quot;new&quot;}">
                    <img class="isdefault" src="https://csdnimg.cn/release/blogv2/dist/pc/img/newShareWhite.png" alt="">
                </a>
                <div class="QRcode" id="tool-QRcode">
                    <p class="title">
                    扫一扫,分享海报
                    </p>
                    <div id="shareCode" title="https://app-blog.csdn.net/share?article_id=91451053&amp;username=qq_32706349&amp;utm_source=po_popup"><canvas width="144" height="144" style="display: none;"></canvas><img src="https://img-blog.csdnimg.cn/2022010615300918470.png" style="display: block;"></div>
                </div>
            </li>
        </ul>
        </div>
        <div class="toolbox-right">
                <div class="tool-directory">
                    <a class="bt-columnlist-show" data-id="7713794" data-free="true" data-subscribe="false" data-title="linux" data-img="https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64" data-url="https://blog.csdn.net/qq_32706349/category_7713794.html" data-sum="10" data-people="1" data-price="0" data-oldprice="0" data-join="false" data-studyvip="false" data-studysubscribe="false" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.6334&quot;,&quot;extend1&quot;:&quot;专栏目录&quot;}">专栏目录</a>
                </div>
        </div>
    </div>  
</div>
<script type="text/javascript" crossorigin="" src="https://csdnimg.cn/release/phoenix/production/qrcode-7c90a92189.min.js"></script>
<script src="//g.csdnimg.cn/??sharewx/1.2.1/sharewx.js" type="text/javascript"></script>
<script type="text/javascript" crossorigin="" src="https://g.csdnimg.cn/user-login/3.0.1/user-login.js"></script>
<script type="text/javascript" crossorigin="" src="https://g.csdnimg.cn/collection-box/2.0.6/collection-box.js"></script>
                <div class="first-recommend-box recommend-box">
<div class="recommend-item-box type_download clearfix" data-url="http://download.csdn.net/download/weixin_38577378/14109098">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="http://download.csdn.net/download/weixin_38577378/14109098" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6661.1&quot;,&quot;mod&quot;:&quot;popu_871&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant_t0.none-task-download-2~default~CTRLIST~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;1&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;http://download.csdn.net/download/weixin_38577378/14109098&quot;}" data-report-query="spm=1001.2101.3001.6661.1&amp;utm_medium=distribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">linux <em>rsync</em>同步<em>命令</em>(值得收藏)</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info display-flex">
                    <span class="info-block">01-11</span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="http://download.csdn.net/download/weixin_38577378/14109098" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6661.1&quot;,&quot;mod&quot;:&quot;popu_871&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant_t0.none-task-download-2~default~CTRLIST~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;1&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;http://download.csdn.net/download/weixin_38577378/14109098&quot;}" data-report-query="spm=1001.2101.3001.6661.1&amp;utm_medium=distribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant_t0.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">如果你是<em>一</em>位运维工程师,你很可能会面对几十台、几百台甚至上千台服务器,除了批量操作外,环境同步、数据同步也是必不可少的技能。
说到“同步”,不得不提的利器就是<em>rsync</em>,今天就来说说我从这个工具中看到的同步的艺术。
[不带任何选项]
我们经常这样使用<em>rsync</em>:
 代码如下:
$ <em>rsync</em> main.c machineB:/home/userB

1 只要目的端的文件内容<em>和</em>源端不<em>一</em>样,就会触发数据同步,<em>rsync</em>会确保两边的文件内容<em>一</em>样。

2 但<em>rsync</em>不会同步文件的“modify time”,凡是有数据同步的文件,目的端的文件的“modify time”总是会被修改为最新时刻的时间。
</div>
            </a>
        </div>
    </div>
</div>
                </div>
            <script src="https://csdnimg.cn/release/blogv2/dist/components/js/pc_wap_commontools-fbe92c420e.min.js" type="text/javascript" async=""></script>
            <div class="second-recommend-box recommend-box">
<div class="recommend-item-box type_download clearfix" data-url="http://download.csdn.net/download/weixin_38657115/14096017">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="http://download.csdn.net/download/weixin_38657115/14096017" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.1&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~CTRLIST~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;1&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;http://download.csdn.net/download/weixin_38657115/14096017&quot;}" data-report-query="spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>只同步指定目录的方法(已测)</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info display-flex">
                    <span class="info-block">01-10</span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="http://download.csdn.net/download/weixin_38657115/14096017" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.1&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~CTRLIST~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;1&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;http://download.csdn.net/download/weixin_38657115/14096017&quot;}" data-report-query="spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1"><em>rsync</em>同步指定目录
<em>rsync</em>使用–i<em>nc</em>lude参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。
例如:
linux上文件目录
 代码如下:
ls /usr/local/apache/htdocs/site
aa
bb
cc
dd
ee
..
zz

只想同步aa,bb,ee这三个目录,其他的不同步。
实现代码:
 代码如下:
/usr/local/<em>rsync</em>/bin/<em>rsync</em> -azv&nbsp; –i<em>nc</em>lude “aa/” –i<em>nc</em>lude “bb/” –i<em>nc</em>lude “ee”&nbsp; –exclude “/*”&nbsp; –progress <em>rsync</em>://127.0</div>
            </a>
        </div>
    </div>
</div>
            </div>
<a id="commentBox" name="commentBox"></a>
<div class="comment-box">
    <div class="comment-edit-box d-flex">
        <a id="commentsedit"></a>
        <div class="user-img">
            <a href="https://blog.csdn.net/bai_yang_yang" target="_blank">
                <img class="" src="https://profile.csdnimg.cn/E/5/F/3_bai_yang_yang">
            </a>
        </div>
        <form id="commentform">
            
      <textarea class="comment-content" name="comment_content" id="comment_content" placeholder="请发表有价值的评论, 博客评论不欢迎灌水,良好的社区氛围需大家一起维护。" maxlength="1000"></textarea>
            <div class="comment-emoticon"><img class="comment-emoticon-img" data-url="https://csdnimg.cn/release/blogv2/dist/pc/img/" src="https://csdnimg.cn/release/blogv2/dist/pc/img/emoticon.png" alt="表情包"></div> 
      <span class="comment-emoticon-tip">插入表情</span>
      <div class="comment-emoticon-box" style="display: none;">
        <div class="comment-emoticon-img-box"></div>
            </div>
      <div class="opt-box">
                <div id="ubbtools" class="add_code">
                    <a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
                </div>
                <input type="hidden" id="comment_replyId" name="comment_replyId">
                <input type="hidden" id="article_id" name="article_id" value="91451053">
                <input type="hidden" id="comment_userId" name="comment_userId" value="">
                <input type="hidden" id="commentId" name="commentId" value="">
                <div class="dropdown" id="myDrap">
                    <a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                        <div class="txt-selected text-truncate">添加代码片</div>
                        <svg class="icon d-block" width="200px" height="100.00px" viewBox="0 0 2048 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M597.33333292 298.666667h853.333334L1023.99999992 725.333333 597.33333292 298.666667z"></path></svg>
                    </a>
                    <ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
                        <li><a data-code="html">HTML/XML</a></li>
                        <li><a data-code="objc">objective-c</a></li>
                        <li><a data-code="ruby">Ruby</a></li>
                        <li><a data-code="php">PHP</a></li>
                        <li><a data-code="csharp">C</a></li>
                        <li><a data-code="cpp">C++</a></li>
                        <li><a data-code="javascript">JavaScript</a></li>
                        <li><a data-code="python">Python</a></li>
                        <li><a data-code="java">Java</a></li>
                        <li><a data-code="css">CSS</a></li>
                        <li><a data-code="sql">SQL</a></li>
                        <li><a data-code="plain">其它</a></li>
                    </ul>
                </div>
                <div class="right-box" id="rightBox" data-type="2">
                            <span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
                            <a data-report-click="{&quot;mod&quot;:&quot;1582594662_003&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4227&quot;,&quot;ab&quot;:&quot;new&quot;}"><input type="submit" class="btn btn-sm btn-comment" value="发表评论"></a>
                </div>
            </div>
        </form>
        <input type="button" class="bt-comment-show" value="评论">
    </div>
    <div class="comment-list-container" style="display: block;">
        <a id="comments"></a>
        <div class="comment-list-box"><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="12837877" data-replyname="math1226"><div style="display: flex;width: 100%;">      <a target="_blank" href="https://blog.csdn.net/math1226"><img src="https://profile.csdnimg.cn/8/E/D/3_math1226" username="math1226" alt="math1226" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://blog.csdn.net/math1226"><span class="name ">程序员臻叔</span></a><span class="colon">:</span><span class="floor-num"></span><span class="new-comment">不错子!请问可以转载到公众号【程序员臻叔】吗?之前整理了BAT面试题,最近开始归纳基础知识,想把你的文章分享给更多人知道!</span><span class="date" title="2020-07-18 19:12:57">1 年前</span><span class="new-opt-floating"><a class="btn-bt  btn-reply" data-type="reply" data-flag="true">回复</a><a class="btn-bt  btn-report"><img class="btn-report-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentMore.png" title=""><span data-type="report" class="hide-report">举报</span></a></span></div><div class="comment-like " data-commentid="12837877"><img class="comment-like-img unclickImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentUnHeart.png" title="点赞"><img class="comment-like-img comment-like-img-hover" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><img class="comment-like-img clickedImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><span>3</span></div></div></div></li><li class="replay-box" style="display:block"><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="12840327" data-replyname="qq_32706349"><div style="display: flex;width: 100%;">      <a target="_blank" href="https://blog.csdn.net/qq_32706349"><img src="https://profile.csdnimg.cn/1/1/F/3_qq_32706349" username="qq_32706349" alt="qq_32706349" class="avatar"></a>        <div class="right-box reply-box">          <div class="new-info-box clearfix">            <a target="_blank" href="https://blog.csdn.net/qq_32706349"><span class="name mr-8">不进则退2020<img class="is_bloger" src="https://csdnimg.cn/release/blogv2/dist/components/img/bloger@2x.png"></span></a><span class="text">回复</span><span class="colon">:</span><span class="text"></span><span class="new-comment">我也是转载的,请咨询原博主,原文地址见开头</span><span class="date" title="2020-07-19 10:22:30">1 年前</span><span class="new-opt-floating"><a class="btn-bt  btn-reply" data-type="reply" data-flag="true">回复</a><a class="btn-bt  btn-report"><img class="btn-report-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentMore.png" title=""><span data-type="report" class="hide-report">举报</span></a></span></div><div class="comment-like " data-commentid="12840327"><img class="comment-like-img unclickImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentUnHeart.png" title="点赞"><img class="comment-like-img comment-like-img-hover" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><img class="comment-like-img clickedImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><span>1</span></div></div></div></li></ul></li></ul><ul class="comment-list"><li class="comment-line-box d-flex" data-commentid="18471421" data-replyname="github_32362501"><div style="display: flex;width: 100%;">      <a target="_blank" href="https://blog.csdn.net/github_32362501"><img src="https://profile.csdnimg.cn/4/C/8/3_github_32362501" username="github_32362501" alt="github_32362501" class="avatar"></a>        <div class="right-box ">          <div class="new-info-box clearfix">            <a target="_blank" href="https://blog.csdn.net/github_32362501"><span class="name ">问天2019</span></a><span class="colon">:</span><span class="floor-num"></span><span class="new-comment">这个就很厉害了..</span><span class="date" title="2021-09-29 17:39:07">3 月前</span><span class="new-opt-floating"><a class="btn-bt  btn-reply" data-type="reply" data-flag="true">回复</a><a class="btn-bt  btn-report"><img class="btn-report-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentMore.png" title=""><span data-type="report" class="hide-report">举报</span></a></span></div><div class="comment-like " data-commentid="18471421"><img class="comment-like-img unclickImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentUnHeart.png" title="点赞"><img class="comment-like-img comment-like-img-hover" style="display:none" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><img class="comment-like-img clickedImg" src="https://csdnimg.cn/release/blogv2/dist/pc/img/commentActiveHeart.png" title="点赞"><span></span></div></div></div></li></ul></div>
        <div id="commentPage" class="pagination-box d-none" style="display: block;"><div id="Paging_028836262642155797" class="ui-paging-container"><ul><li class="js-page-first js-page-action ui-pager ui-pager-disabled"></li><li class="js-page-prev js-page-action ui-pager ui-pager-disabled">&lt;</li><li data-page="1" class="ui-pager focus">1</li><li class="js-page-next js-page-action ui-pager ui-pager-disabled">&gt;</li><li class="js-page-last js-page-action ui-pager ui-pager-disabled"></li></ul></div></div>
        
    </div>
</div>            <div class="recommend-box insert-baidu-box">
                <div class="recommend-item-box clearfix" style="display:none"></div><div class="recommend-item-box baiduSearch clearfix" data-type="blog">                    <div class="content-box">                        <div class="content-blog display-flex">                              <div class="title-box">                                  <a class="tit" href="https://blog.csdn.net/weixin_42890981/article/details/81674393" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;0\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.1&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_42890981/article/details/81674393&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;0&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link&amp;spm=1001.2101.3001.4242.1">                                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>_随笔亦行</div>                                  </a>                              </div>                    <div class="info-box display-flex">                      <div class="info display-flex">                        <span class="info-block">10-16</span>                      </div>                    </div>                  </div>                  <div class="desc-box">                    <a href="https://blog.csdn.net/weixin_42890981/article/details/81674393" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;0\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.1&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_42890981/article/details/81674393&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;0&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.no_search_link&amp;spm=1001.2101.3001.4242.1">                      <div class="desc ellipsis-online ellipsis-online-1">快速:只会在第<em>一</em>次同步时 <em>rsync</em> 会复制全部的内容,下<em>一</em>次同步则只会传输修改过的文件,<em>rsync</em> 在传输数据的过程可以实现压缩及解压操作,因此可以节约带宽 <em>Rsync</em>大致使用三种主要的传输数据方式。分别为:本地传输(local),远程通道传输 (remo...</div>                    </a>                  </div>                </div>              </div><div class="recommend-item-box baiduSearch clearfix" data-type="blog">                    <div class="content-box">                        <div class="content-blog display-flex">                              <div class="title-box">                                  <a class="tit" href="https://blog.csdn.net/jiangyu1013/article/details/79754060" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;0\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.2&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/jiangyu1013/article/details/79754060&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;1&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.no_search_link&amp;spm=1001.2101.3001.4242.2">                                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>:<em>基本</em><em>命令</em><em>和</em><em>用法</em>_愿我如星君如月 ... 夜夜流光相...</div>                                  </a>                              </div>                    <div class="info-box display-flex">                      <div class="info display-flex">                        <span class="info-block">11-20</span>                      </div>                    </div>                  </div>                  <div class="desc-box">                    <a href="https://blog.csdn.net/jiangyu1013/article/details/79754060" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;0\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.2&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/jiangyu1013/article/details/79754060&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;1&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1.no_search_link&amp;spm=1001.2101.3001.4242.2">                      <div class="desc ellipsis-online ellipsis-online-1"><em>rsync</em>的目的是实现本地主机<em>和</em>远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。 </div>                    </a>                  </div>                </div>              </div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_33735077/article/details/92519778">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/weixin_33735077/article/details/92519778" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.2&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;2&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_33735077/article/details/92519778&quot;}" data-report-query="spm=1001.2101.3001.6650.2&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>Rsync</em>原理详解及部署</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/weixin_33735077" target="_blank"><span class="blog-title">weixin_33735077的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">12-25</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    838
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/weixin_33735077/article/details/92519778" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.2&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-2.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;2&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_33735077/article/details/92519778&quot;}" data-report-query="spm=1001.2101.3001.6650.2&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1"><em>Rsync</em>介绍<em>一</em>、什么是<em>rsync</em><em>rsync</em>是<em>一</em>款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remote <em>sync</em>)。可使本地主机不同分区或目录之间及本地<em>和</em>远程两台主机之间的数据快速同步镜像,远程备份等功能。  在同步备份时,默认情况下,<em>rsync</em>通过其独特的“quick check”算法...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/happy_wealthy/article/details/109801045">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/happy_wealthy/article/details/109801045" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.3&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;3&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/happy_wealthy/article/details/109801045&quot;}" data-report-query="spm=1001.2101.3001.6650.3&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>:<em>基本</em><em>命令</em><em>和</em><em>用法</em></div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/happy_wealthy" target="_blank"><span class="blog-title">happy_wealthy的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">11-19</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    886
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/happy_wealthy/article/details/109801045" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.3&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-3.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;3&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/happy_wealthy/article/details/109801045&quot;}" data-report-query="spm=1001.2101.3001.6650.3&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">原文地址:https://www.cnblogs.com/f-ck-need-u/p/7220009.html#blog21
2.1 说在前面的话
<em>rsync</em>官方网站: https://www.samba.org/ftp/<em>rsync</em>/<em>rsync</em>.html
<em>rsync</em>是可以实现增量备份的工具。配合任务计划,<em>rsync</em>能实现定时或间隔同步,配合inotify或se<em>rsync</em>,可以实现触发式的实时同步。
<em>rsync</em>可以实现scp的远程拷贝(<em>rsync</em>不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除</div>
            </a>
        </div>
    </div>
</div><div class="recommend-item-box baiduSearch clearfix" data-type="blog">                    <div class="content-box">                        <div class="content-blog display-flex">                              <div class="title-box">                                  <a class="tit" href="https://blog.csdn.net/weixin_38889300/article/details/104172972" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;3\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.3&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_38889300/article/details/104172972&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;4&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.no_search_link&amp;spm=1001.2101.3001.4242.3">                                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>学习笔记_开源Linux</div>                                  </a>                              </div>                    <div class="info-box display-flex">                      <div class="info display-flex">                        <span class="info-block">11-5</span>                      </div>                    </div>                  </div>                  <div class="desc-box">                    <a href="https://blog.csdn.net/weixin_38889300/article/details/104172972" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;3\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.3&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_38889300/article/details/104172972&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;4&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4.no_search_link&amp;spm=1001.2101.3001.4242.3">                      <div class="desc ellipsis-online ellipsis-online-1">## 语法: <em>rsync</em> -avz 共享路径 客户端用户@客户端IP:/目标路径[root@qll251 ~]# <em>rsync</em> -avz /<em>rsync</em>/ <em>rsync</em>_user@192.168.1.252:/shares##想明白为什么<em>rsync</em>客户端也需要创建<em>rsync</em>_user用户了吗?因为服务器通过该用户去访问客户...</div>                    </a>                  </div>                </div>              </div><div class="recommend-item-box baiduSearch clearfix" data-type="blog">                    <div class="content-box">                        <div class="content-blog display-flex">                              <div class="title-box">                                  <a class="tit" href="https://blog.csdn.net/u012865381/article/details/77506397" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;3\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.4&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/u012865381/article/details/77506397&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;5&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5.no_search_link&amp;spm=1001.2101.3001.4242.4">                                    <div class="left ellipsis-online ellipsis-online-1"><em>Rsync</em>详解_谢谢俊东的博客_<em>rsync</em></div>                                  </a>                              </div>                    <div class="info-box display-flex">                      <div class="info display-flex">                        <span class="info-block">11-20</span>                      </div>                    </div>                  </div>                  <div class="desc-box">                    <a href="https://blog.csdn.net/u012865381/article/details/77506397" target="_blank" data-report-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;,\&quot;parent_index\&quot;:\&quot;3\&quot;}&quot;,&quot;spm&quot;:&quot;1001.2101.3001.4242.4&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/u012865381/article/details/77506397&quot;,&quot;strategy&quot;:&quot;2~default~baidujs_baidulandingword~default&quot;,&quot;ab&quot;:&quot;new&quot;,&quot;index&quot;:&quot;5&quot;}" data-report-query="utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5.no_search_link&amp;spm=1001.2101.3001.4242.4">                      <div class="desc ellipsis-online ellipsis-online-1"><em>rsync</em>是<em>一</em>款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remote <em>sync</em>)。可使本地主机不同分区或目录之间及本地<em>和</em>远程两台主机之间的数据快速同步镜像...</div>                    </a>                  </div>                </div>              </div>
        
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/chen3888015/article/details/7721567">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/chen3888015/article/details/7721567" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.4&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;4&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/chen3888015/article/details/7721567&quot;}" data-report-query="spm=1001.2101.3001.6650.4&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em></div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/chen3888015" target="_blank"><span class="blog-title">建伟博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">07-06</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    1679
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/chen3888015/article/details/7721567" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.4&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;4&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/chen3888015/article/details/7721567&quot;}" data-report-query="spm=1001.2101.3001.6650.4&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">以下是<em>rsync</em>系列篇: 1.<em>rsync</em>(<em>一</em><em>):</em><em>基本</em><em>命令</em><em>和</em><em>用法</em> 2.<em>rsync</em>(二<em>):</em>inotify+<em>rsync</em>详细说明<em>和</em>se<em>rsync</em> 3.<em>rsync</em>算法原理<em>和</em>工作流程分析 4.<em>rsync</em>技术报告(翻译) 5.<em>rsync</em>工作机制(翻译) 6.man <em>rsync</em>翻译(<em>rsync</em><em>命令</em>中文手册)

2.1 说在前面的话

<em>rsync</em>官方网站:&nbsp;https://www.samba.org/ftp/r...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/qq_43072797/article/details/106182288">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/qq_43072797/article/details/106182288" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.5&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~default-5.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;5&quot;,&quot;strategy&quot;:&quot;2~default~OPENSEARCH~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_43072797/article/details/106182288&quot;}" data-report-query="spm=1001.2101.3001.6650.5&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>(<em>一</em>):<em>基本</em><em>命令</em><em>和</em><em>用法</em></div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/qq_43072797" target="_blank"><span class="blog-title">qq_43072797的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">05-17</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    87
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/qq_43072797/article/details/106182288" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.5&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~default-5.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;5&quot;,&quot;strategy&quot;:&quot;2~default~OPENSEARCH~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_43072797/article/details/106182288&quot;}" data-report-query="spm=1001.2101.3001.6650.5&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-5.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1"><em>一</em>:说在前面的话
<em>rsync</em>官方网站: https://www.samba.org/ftp/<em>rsync</em>/<em>rsync</em>.html
<em>rsync</em>是可以实现增量备份的工具。配合任务计划,<em>rsync</em>能实现定时或间隔同步,配合inotify或se<em>rsync</em>,可以实现触发式的实时同步。
<em>rsync</em>可以实现scp的远程拷贝(<em>rsync</em>不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除<em>和</em>"ls -l"显示文件列表等功能。但需要注意的是,<em>rsync</em>的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_34009794/article/details/86246757">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/weixin_34009794/article/details/86246757" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.6&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~default-6.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;6&quot;,&quot;strategy&quot;:&quot;2~default~OPENSEARCH~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_34009794/article/details/86246757&quot;}" data-report-query="spm=1001.2101.3001.6650.6&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-6.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-6.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">第2章 <em>rsync</em>(<em>一</em><em>):</em><em>基本</em><em>命令</em><em>和</em><em>用法</em></div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/weixin_34009794" target="_blank"><span class="blog-title">weixin_34009794的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">07-21</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    43
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/weixin_34009794/article/details/86246757" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.6&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~OPENSEARCH~default-6.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;6&quot;,&quot;strategy&quot;:&quot;2~default~OPENSEARCH~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_34009794/article/details/86246757&quot;}" data-report-query="spm=1001.2101.3001.6650.6&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-6.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-6.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">以下是<em>rsync</em>系列篇:
 1.<em>rsync</em>(<em>一</em><em>):</em><em>基本</em><em>命令</em><em>和</em><em>用法</em>
 2.<em>rsync</em>(二<em>):</em>inotify+<em>rsync</em>详细说明<em>和</em>se<em>rsync</em>
 3.<em>rsync</em>算法原理<em>和</em>工作流程分析
 4.<em>rsync</em>技术报告(翻译)
 5.<em>rsync</em>工作机制(翻译)
 6.man <em>rsync</em>翻译(<em>rsync</em><em>命令</em>中文手册)


2.1 说在前面的话
<em>rsync</em>官方网站: https://www.s...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/woaizxy123/article/details/88660759">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/woaizxy123/article/details/88660759" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.7&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-7.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;7&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/woaizxy123/article/details/88660759&quot;}" data-report-query="spm=1001.2101.3001.6650.7&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-7.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-7.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em><em>基本</em>使用详解</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/woaizxy123" target="_blank"><span class="blog-title">woaizxy123的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">03-22</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    1万+
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/woaizxy123/article/details/88660759" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.7&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-7.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;7&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/woaizxy123/article/details/88660759&quot;}" data-report-query="spm=1001.2101.3001.6650.7&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-7.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-7.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">目录
• 了解<em>rsync</em> 功能及其特点
• 了解<em>rsync</em>语法及常用选项功能
• 了解<em>rsync</em><em>命令</em>的三种<em>基本</em>常用使用方法
• 了解并掌握筛选<em>rsync</em> 的传输目标
简介
<em>rsync</em>(remote <em>sync</em>hronize)是<em>一</em>个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 <em>rsync</em> 同步本地硬盘中的不同目录。
<em>rsync</em> 是用于替代 rcp 的<em>一</em>个工具,rsy...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/u011180520/article/details/102602321">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/u011180520/article/details/102602321" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.8&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-8.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;8&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/u011180520/article/details/102602321&quot;}" data-report-query="spm=1001.2101.3001.6650.8&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-8.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-8.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">(转载)<em>rsync</em>的<em>基本</em><em>命令</em>与使用方法</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/u011180520" target="_blank"><span class="blog-title">u011180520的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">10-17</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    78
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/u011180520/article/details/102602321" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.8&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-8.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;8&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/u011180520/article/details/102602321&quot;}" data-report-query="spm=1001.2101.3001.6650.8&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-8.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-8.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">原文地址:https://www.cnblogs.com/f-ck-need-u/p/7220009.html#blog21
2.1 说在前面的话
<em>rsync</em>官方网站: https://www.samba.org/ftp/<em>rsync</em>/<em>rsync</em>.html
<em>rsync</em>是可以实现增量备份的工具。配合任务计划,<em>rsync</em>能实现定时或间隔同步,配合inotify或se<em>rsync</em>,可以实现触发式的实时同步。...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/qq_41816540/article/details/80611757">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/qq_41816540/article/details/80611757" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.9&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-9.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;9&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_41816540/article/details/80611757&quot;}" data-report-query="spm=1001.2101.3001.6650.9&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-9.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-9.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>项目实战</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/qq_41816540" target="_blank"><span class="blog-title">白衣不染尘的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">06-07</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    1843
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/qq_41816540/article/details/80611757" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.9&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-9.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;9&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_41816540/article/details/80611757&quot;}" data-report-query="spm=1001.2101.3001.6650.9&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-9.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-9.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">某公司里有<em>一</em>台web服务器,里面的数据很重要,但是如果硬盘坏了,数据会丢失,现在领导要求你把数据在其他机器上做<em>一</em>个周期性定时备份。要求如下:每天晚上00点整在web服务器A上打包备份网站程序目录并通过<em>rsync</em><em>命令</em>推送到服务器B上备份保留(备份思路可以是现在本地按日期打包,然后再利用rs<em>nc</em>推到备份服务器上)具体要求如下:1)web服务器A<em>和</em>备份服务器B的备份目录必须都为/backup2)web服...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/imliuqun123/article/details/81704873">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/imliuqun123/article/details/81704873" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.10&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-10.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;10&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/imliuqun123/article/details/81704873&quot;}" data-report-query="spm=1001.2101.3001.6650.10&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">【Linux】<em>rsync</em>的相关用途</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/imliuqun123" target="_blank"><span class="blog-title">zclinux的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">08-15</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    1184
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/imliuqun123/article/details/81704873" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.10&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-10.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;10&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/imliuqun123/article/details/81704873&quot;}" data-report-query="spm=1001.2101.3001.6650.10&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-10.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1"><em>Rsync</em>,代表“remote <em>sync</em>”,它是本地<em>和</em>远程主机文件同步工具。它只同步更改的文件,以此实现最小化传输数据。

我使用Ubuntu 16.04做为例子,但是你可以把它应用到任何其它主流的Linux发型版。

&nbsp;

<em>基本</em>语法

<em>rsync</em><em>命令</em><em>和</em>ssh,scp<em>命令</em>有点相似。

我们创建两个测试目录<em>和</em><em>一</em>些文件:

$ mkdir dir1

$ mkdir dir2

$ touch dir...</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/cx55887/article/details/82943760" data-report-view="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.11&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;11&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/cx55887/article/details/82943760&quot;}">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/cx55887/article/details/82943760" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.11&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;11&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/cx55887/article/details/82943760&quot;}" data-report-query="spm=1001.2101.3001.6650.11&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1"><em>rsync</em>常用的三种<em>用法</em></div>
                    <div class="tag">热门推荐</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/cx55887" target="_blank"><span class="blog-title">linux系统运维学习日记</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">10-05</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    1万+
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/cx55887/article/details/82943760" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.11&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-11.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;11&quot;,&quot;strategy&quot;:&quot;2~default~CTRLIST~default&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/cx55887/article/details/82943760&quot;}" data-report-query="spm=1001.2101.3001.6650.11&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-11.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">摘要:<em>用法</em>1:本地<em>用法</em>
类似于cp、dd<em>命令</em>,实现备份文件的复制(备份)
<em>用法</em>2:远程shell
利用ssh实现远程数据传输,类似于scp
<em>用法</em>3:守护进程模式</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_blog clearfix" data-url="https://blog.csdn.net/weixin_45987729/article/details/121673039" data-report-view="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.12&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.623492.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;index&quot;:&quot;12&quot;,&quot;style&quot;:&quot;text_1&quot;,&quot;strategy&quot;:&quot;11_623492_RCMD&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_45987729/article/details/121673039&quot;}">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://blog.csdn.net/weixin_45987729/article/details/121673039" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.12&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.623492.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;index&quot;:&quot;12&quot;,&quot;style&quot;:&quot;text_1&quot;,&quot;strategy&quot;:&quot;11_623492_RCMD&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_45987729/article/details/121673039&quot;}" data-report-query="spm=1001.2101.3001.6650.12&amp;utm_medium=distribute.pc_relevant.623492.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.623492.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">后端程序员,尤其是Java后端程序员,离得开Spring框架吗?</div>
                    <div class="tag">最新发布</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info">
                    <a href="https://blog.csdn.net/weixin_45987729" target="_blank"><span class="blog-title">21世紀難民的博客</span></a>
                </div>
                <div class="info display-flex">
                    <span class="info-block time">12-02</span>
                    <span class="info-block read"><img class="read-img" src="https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png" alt="">
                    55
                    </span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://blog.csdn.net/weixin_45987729/article/details/121673039" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.12&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.623492.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;index&quot;:&quot;12&quot;,&quot;style&quot;:&quot;text_1&quot;,&quot;strategy&quot;:&quot;11_623492_RCMD&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/weixin_45987729/article/details/121673039&quot;}" data-report-query="spm=1001.2101.3001.6650.12&amp;utm_medium=distribute.pc_relevant.623492.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.623492.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">显然,答案是否定的。这些年,Spring 早已成为 Java 后端开发事实上的行业标准。无数大厂选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring 。<em>基本</em>上现在的互联网公司都要使用到 Spring 框架。Spring 框架中又包含了 SpringMVC、SpringBoot、SpringCloud 等,被开发者称呼为 Spring 全家桶。其实我理解 Spring 就是<em>一</em>个万能插排,可以对接几乎<em>一</em>切的开源接口,而且方便解耦,能简化开发。早些年框架还</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_download clearfix" data-url="https://download.csdn.net/download/u011092458/52856718" data-report-view="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.13&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-13.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;13&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/u011092458/52856718&quot;}">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://download.csdn.net/download/u011092458/52856718" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.13&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-13.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;13&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/u011092458/52856718&quot;}" data-report-query="spm=1001.2101.3001.6650.13&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-13.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-13.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">壹佰智慧门店V2_1.1.41支持全终端的万能门店小程序</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info display-flex">
                    <span class="info-block">11-30</span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://download.csdn.net/download/u011092458/52856718" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.13&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-13.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;13&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/u011092458/52856718&quot;}" data-report-query="spm=1001.2101.3001.6650.13&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-13.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-13.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">壹佰智慧门店V2_1.1.41支持全终端的万能门店小程序</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_download clearfix" data-url="https://download.csdn.net/download/li514006030/53621954" data-report-view="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.14&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-14.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;14&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/li514006030/53621954&quot;}">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://download.csdn.net/download/li514006030/53621954" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.14&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-14.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;14&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/li514006030/53621954&quot;}" data-report-query="spm=1001.2101.3001.6650.14&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-14.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-14.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">festival-speechtools-devel-1.2.96-28.el7.i686.rpm</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info display-flex">
                    <span class="info-block">12-01</span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://download.csdn.net/download/li514006030/53621954" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.14&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-14.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;14&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/li514006030/53621954&quot;}" data-report-query="spm=1001.2101.3001.6650.14&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-14.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-14.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">离线安装包,亲测可用</div>
            </a>
        </div>
    </div>
</div>
<div class="recommend-item-box type_download clearfix" data-url="https://download.csdn.net/download/weixin_46191548/52837111" data-report-view="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.15&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-15.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;15&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/weixin_46191548/52837111&quot;}">
    <div class="content-box">
        <div class="content-blog display-flex">
            <div class="title-box">
                <a href="https://download.csdn.net/download/weixin_46191548/52837111" class="tit" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.15&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-15.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;15&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/weixin_46191548/52837111&quot;}" data-report-query="spm=1001.2101.3001.6650.15&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-15.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-15.no_search_link">
                    <div class="left ellipsis-online ellipsis-online-1">零售店如何搞好宣传赢得商机.pdf</div>
                </a>
            </div>
            <div class="info-box display-flex">
                <div class="info display-flex">
                    <span class="info-block">11-30</span>
                </div>
            </div>
        </div>
        <div class="desc-box">
            <a href="https://download.csdn.net/download/weixin_46191548/52837111" target="_blank" data-report-click="{&quot;ab&quot;:&quot;new&quot;,&quot;spm&quot;:&quot;1001.2101.3001.6650.15&quot;,&quot;mod&quot;:&quot;popu_387&quot;,&quot;extra&quot;:&quot;{\&quot;highlightScore\&quot;:0.0,\&quot;utm_medium\&quot;:\&quot;distribute.pc_relevant.none-task-download-2~default~BlogCommendHotData~default-15.no_search_link\&quot;,\&quot;dist_request_id\&quot;:\&quot;1638434468298_91804\&quot;}&quot;,&quot;dist_request_id&quot;:&quot;1638434468298_91804&quot;,&quot;ab_strategy&quot;:&quot;default&quot;,&quot;index&quot;:&quot;15&quot;,&quot;strategy&quot;:&quot;2~default~BlogCommendHotData~default&quot;,&quot;dest&quot;:&quot;https://download.csdn.net/download/weixin_46191548/52837111&quot;}" data-report-query="spm=1001.2101.3001.6650.15&amp;utm_medium=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-15.no_search_link&amp;depth_1-utm_source=distribute.pc_relevant.none-task-download-2%7Edefault%7EBlogCommendHotData%7Edefault-15.no_search_link">
                <div class="desc ellipsis-online ellipsis-online-1">零售店如何搞好宣传赢得商机.pdf</div>
            </a>
        </div>
    </div>
</div>
            </div>
            <div class="template-box">
                <span>©️2021 CSDN</span>
                <span>皮肤主题: 技术工厂</span>
                <span> 设计师:CSDN官方博客</span>
                <span>
                    <a href="https://blog.csdn.net/" class="back-home c-blue c-blue-hover c-blue-focus">返回首页</a>
                </span>
            </div>
<div class="blog-footer-bottom" style="margin-top:10px;">
        <div id="copyright-box" class="">
          <div id="csdn-copyright-footer" class="column small">
            <ul class="footer-column-t">
            <li>
              <a href="//www.csdn.net/company/index.html#about" target="_blank">关于我们</a>
            </li>
            <li>
              <a href="//www.csdn.net/company/index.html#recruit" target="_blank">招贤纳士</a>
            </li>
            <li>
              <a href="//www.csdn.net/company/index.html#advertisement" target="_blank">广告服务</a>
            </li>
            <li>
              <a href="https://plugin.csdn.net/" target="_blank">开发助手</a>
            </li>
            <li>
              <img src="//g.csdnimg.cn/common/csdn-footer/images/tel.png" alt="">
              <span>400-660-0108</span>
            </li>
            <li>
              <img src="//g.csdnimg.cn/common/csdn-footer/images/email.png" alt="">
              <a href="mailto:webmaster@csdn.net" target="_blank">kefu@csdn.net</a>
            </li>
            <li>
              <img src="//g.csdnimg.cn/common/csdn-footer/images/cs.png" alt="">
              <a href="https://csdn.s2.udesk.cn/im_client/?web_plugin_id=29181" target="_blank">在线客服</a>
            </li>
            <li>
              工作时间&nbsp;8:30-22:00
            </li>
          </ul>
            <ul class="footer-column-b">
            <li><img src="//g.csdnimg.cn/common/csdn-footer/images/badge.png" alt=""><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502030143" rel="noreferrer" target="_blank">公安备案号11010502030143</a></li>
            <li><a href="http://beian.miit.gov.cn/publish/query/indexFirst.action" rel="noreferrer" target="_blank">京ICP备19004658号</a></li>
            <li><a href="https://csdnimg.cn/release/live_fe/culture_license.png" rel="noreferrer" target="_blank">京网文〔2020〕1039-165号</a></li>
            <li><a href="https://csdnimg.cn/cdn/content-toolbar/csdn-ICP.png" target="_blank">经营性网站备案信息</a></li>
            <li><a href="http://www.bjjubao.org/" target="_blank">北京互联网违法和不良信息举报中心</a></li>
            <li><a href="http://www.cyberpolice.cn/" target="_blank">网络110报警服务</a></li>
            <li><a href="http://www.12377.cn/" target="_blank">中国互联网举报中心</a></li>
            <li><a href="https://download.csdn.net/index.php/tutelage/" target="_blank">家长监护</a></li>
            <li><a href="https://chrome.google.com/webstore/detail/csdn%E5%BC%80%E5%8F%91%E8%80%85%E5%8A%A9%E6%89%8B/kfkdboecolemdjodhmhmcibjocfopejo?hl=zh-CN" target="_blank">Chrome商店下载</a></li>
            <li>©1999-2021北京创新乐知网络技术有限公司</li>
            <li><a href="https://www.csdn.net/company/index.html#statement" target="_blank">版权与免责声明</a></li>
            <li><a href="https://blog.csdn.net/blogdevteam/article/details/90369522" target="_blank">版权申诉</a></li>
            <li><a href="https://img-home.csdnimg.cn/images/20210414021151.jpg" target="_blank">出版物许可证</a></li>
            <li><a href="https://img-home.csdnimg.cn/images/20210414021142.jpg" target="_blank">营业执照</a></li>
          </ul>
          </div>
        </div>
      </div>
<script src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" type="text/javascript"></script>
<script type="text/javascript">
    window.csdn.csdnFooter.options = {
        el: '.blog-footer-bottom',
        type: 2
    }
</script>        </main>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值