Rsync:一个支持按优先级排序传输文件且支持向多台主机传输文件的快速的文件复制工具

更多信息 参考 Rsync命令介绍,本文仅介绍功能概要(特性)、按优先级排序的文件传输列表、批处理模式,退出码,配置文件。

命令格式

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)

功能概要

Rsync是一个快速且用途广泛的文件复制工具(file copying tool)。

可以本地复制,可以通过远程shell或rsync后台程序向另外主机复制,可以通过远程shell或rsync后台程序从另外主机拷贝到本地主机。

Rsync提供大量参数选项来控制其行为的各个方面,同时允许以非常灵活的方式来指定文件集来复制。

Rsync以增量传输算法(delta-transfer  algorithm)出名,仅传输源文件SRC和目的地DST已有文件的差异,这样可以减少网络上大量数据的传输。

Rsync广泛用于备份和镜像传输,并做为日常使用的不断改进的复制命令。


Rsync默认情况下采用一个“快速检查”算法("quick check" algorithm)找到需要传输的文件。该算法通过文件大小或最后一次更改的时间来快速找到文件

当快速检查算法显示文件数据不需要传输,根据Rsync的参数配置项,可以直接在目的文件上进行其它保留属性的任何更改。

Rsync其它的一些特性:

1) 支持链接拷贝,设备拷贝,文件属主及其用户组拷贝,权限拷贝。(support for copying links, devices, owners, groups, and permissions)

2) 支持类似于GNU tar的exclude and exclude-from参数

--exclude=PATTERN    排除匹配模式的文件exclude files matching PATTERN

--exclude-from=FILE  从文件读取排除模式read exclude patterns from FILE

--include=PATTERN    不排除匹配模式的文件don't exclude files matching PATTERN

--include-from=FILE    从文件读取包含模式read include patterns from FILE

3) 支持CVS排除模式,自动忽略文件传输

-cvs-exclude, -C    像CVS同样的方式来自动忽略文件  auto-ignore files in the  same way CVS does

4) 支持使用任何透明的远程shell,包括ssh or rsh

5) 不需要超级用户特权

6) 文件传输以最小化延迟传输成本

7) 支持匿名或经过认证的rsync后台守护进程(理想状态是镜像)

Rsync连接一个远程系统的方式

有两种连接方式:1) 使用一个远程shell程序(ssh获rsh);2) 通过TCP连接一个rsync守护进程。

传输列表按优先级排序SORTED TRANSFER ORDER

Rsync在自己内部的传输列表中指定文件排序。将同名目录的文件内容合并,可以轻松移除重复的文件。然而当文件传输的顺序和命令中配置的不同时使某些人感到困惑。

如果你需要在另外一个文件传输前传输一个特殊文件,可以将文件分成不同的rsync调用,或者使用--delay-updates参数。

--delay-updates延迟更新参数,不影响排序的传输顺序,但会更快进入最终的文件更新阶段。

--delay-updates延迟更新参数,将每一个更新的文件的临时文件放入一个保存目录,直到传输结束,在这期间所有文件被快速重命名后放入这个保持目录。试图将文件的更新操作更加原子化。默认情况下,文件将放入一个叫.~tmp~ 的目录,每个文件传输后的目的目录。除非指定 --partial-dir参数,变更传输的目的目录名。

--partial-dir的评论章节,详细讨论如何将.~tmp~目录将被排除在传输列表中,以及如何通过Rsync对可能存在老的.~tmp~进行清理的方法。

This option puts the temporary file from each updated file into a holding directory until the end of the transfer, at which time all the files are renamed into place in rapid succession. This attempts to make the updating of the files a little more atomic.

By default the files are placed into a directory named .~tmp~ in each file's destination directory, but if you've specified the --partial-dir option, that directory will be used instead.

--no-inc-recursive参数  Rsync需要内存中文件的完整列表为了能够在最后对其进行迭代(--no-inc-recursive : it needs the full file list in memory in order to be able to iterate over it at the end) 。这个参数选项需要在对端需要更多的内存(每个传输文件一个bit位),并在对端需要足够的磁盘空间来保存所有更新文件的附加副本。注意不应该使用绝对路径来指定--partial-dir参数,除非传输中的任何文件都没有相同的名字(假如路径是绝对的,所有同步的文件将放入到同一个的目录中),并且层次结构中没有挂载点(假如不能在保存目录中重命名,将导致延迟更新的文件将传输失败)。

批处理模式BATCH MODE

批处理模式Batch mode可以将更新文件以相同组的方式传输复制到其它很多远程主机中。想象下源文件有一些变更,这些变更将传输到其它主机上。Rsync可以运行在写批量处理模式(write-batch ),将源文件的变更传输到其中一个目的主机。write-batch 参数选项会让Rsync客户端存储“批处理文件”所有信息,也会让其它Rsync客户端做同样的操作。

当更新多个目的文件时,一次生成批处理文件相关信息无需多次执行文件状态,校验和,数据块生成(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)。

read-batch参数,指定相同批处理文件名和目的主机路径,Rsync可以将记录的更改应用到其它的目的主机(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使用批处理文件中存储的信息来更新目的树。

退出码 EXIT VALUES

0 -⁠ Success

1 -⁠ Syntax or usage error

2 -⁠ Protocol incompatibility

3 -⁠ Errors selecting input/output files, dirs

4 -⁠ Requested action not supported. Either:

an attempt was made to manipulate 64-bit files on a platform that cannot support them

an option was specified that is supported by the client and not by the server

5 -⁠ Error starting client-server protocol

6 -⁠ Daemon unable to append to log-file

10 -⁠ Error in socket I/O

11 -⁠ Error in file I/O

12 -⁠ Error in rsync protocol data stream

13 -⁠ Errors with program diagnostics

14 -⁠ Error in IPC code

20 -⁠ Received SIGUSR1 or SIGINT

21 -⁠ Some error returned by waitpid()

22 -⁠ Error allocating core memory buffers

23 -⁠ Partial transfer due to error

24 -⁠ Partial transfer due to vanished source files

25 -⁠ The -⁠-⁠max-delete limit stopped deletions

30 -⁠ Timeout in data send/receive

35 -⁠ Timeout waiting for daemon connection

配置文件FILES

/etc/rsyncd.conf or rsyncd.conf

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容