加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

backup – 使用相同的文件列表rsync到多个目标?

发布时间:2020-05-23 16:24:32 所属栏目:Linux 来源:互联网
导读:我想知道rsync是否可以一次性将一个目录复制到多个远程目的地,甚至可以并行复制. (没必要,但会有用.) 通常,类似下面的内容可以正常工作: $rsync -Pav /junk user@host1:/backup$rsync -Pav /junk user@host2:/backup$rsync -Pav /junk user@host3:/backup 如

我想知道rsync是否可以一次性将一个目录复制到多个远程目的地,甚至可以并行复制. (没必要,但会有用.)

通常,类似下面的内容可以正常工作:

$rsync -Pav /junk user@host1:/backup
$rsync -Pav /junk user@host2:/backup
$rsync -Pav /junk user@host3:/backup

如果这是唯一的选择,我会用它.但是,/ junk位于具有相当多文件的慢速驱动器上,并且与实际传输/更新相比,每次重建大约12,000个文件的文件列表令人痛苦地慢(约5分钟).有可能做这样的事情来完成同样的事情:

$rsync -Pav /junk user@host1:/backup user@host2:/backup user@host3:/backup

谢谢你的期待!

解决方法

以下是有关批处理模式的rsync手册页的信息.

BATCH MODE

Batch mode can be used to apply the same set of updates to many identical systems. Suppose one has a tree which is replicated on a number of hosts. Now suppose some changes have been made to this
source tree and those changes need to be propagated to the other hosts. In order to do this using batch mode,rsync is run with the write-batch option to apply the changes made to the source tree to
one of the destination trees. The write-batch option causes the rsync client to store in a “batch file” all the information needed to repeat this operation against other,identical destination
trees.

Generating the batch file once saves having to perform the file status,checksum,and data block generation more than once when updating multiple destination trees. Multicast transport protocols can
be used to transfer the batch update files in parallel to many hosts at once,instead of sending the same data to every host individually.

To apply the recorded changes to another destination tree,run rsync with the read-batch option,specifying the name of the same batch file,and the destination tree. Rsync updates the destination
tree using the information stored in the batch file.

For your convenience,a script file is also created when the write-batch option is used: it will be named the same as the batch file with “.sh” appended. This script file contains a command-line
suitable for updating a destination tree using the associated batch file. It can be executed using a Bourne (or Bourne-like) shell,optionally passing in an alternate destination tree pathname which
is then used instead of the original destination path. This is useful when the destination tree path on the current host differs from the one used to create the batch file.

Examples:

          $rsync --write-batch=foo -a host:/source/dir/ /adest/dir/
          $scp foo* remote:
          $ssh remote ./foo.sh /bdest/dir/

          $rsync --write-batch=foo -a /source/dir/ /adest/dir/
          $ssh remote rsync --read-batch=- -a /bdest/dir/ <foo

In these examples,rsync is used to update /adest/dir/ from /source/dir/ and the information to repeat this operation is stored in “foo” and “foo.sh”. The host “remote” is then updated with the
batched data going into the directory /bdest/dir. The differences between the two examples reveals some of the flexibility you have in how you deal with batches:

  • The first example shows that the initial copy doesn’t have to be local — you can push or pull data to/from a remote host using either the remote-shell syntax or rsync daemon syntax,as
    desired.

  • The first example uses the created “foo.sh” file to get the right rsync options when running the read-batch command on the remote host.

  • The second example reads the batch data via standard input so that the batch file doesn’t need to be copied to the remote machine first. This example avoids the foo.sh script because it
    needed to use a modified –read-batch option,but you could edit the script file if you wished to make use of it (just be sure that no other option is trying to use standard input,such as
    the “–exclude-from=-” option).

    Caveats:

    The read-batch option expects the destination tree that it is updating to be identical to the destination tree that was used to create the batch update fileset. When a difference between the desti

    (编辑:安卓应用网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读