rsync 客户端参数详解
rsync 客户端基本用法
rsync 提供三种使用模式,本地、ssh、rsync daemon
本地
rsync [OPTION...] SRC... [DEST]
ssh
拉:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
推:
rsync [OPTION...] SRC... [USER@]HOST:DEST
rsync daemon
推:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
拉:
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
仅使用一个SRC参数且没有DEST参数的用法时,将列出源文件而不是复制。
rsync 的一些用法示例
递归地将远程主机foo的src/bar/目录下的所有文件传输到本地/data/tmp目录下
rsync -avz foo:src/bar/ /data/tmp
递归地将远程主机foo的src/bar目录本身及其下的所有文件传输到本地/data/tmp目录下
rsync -avz foo:src/bar /data/tmp
列出远程 rsync daemon 可用模块
rsync somehost.mydomain.com::
本地复制,将src目录下的所有文件复制到dst
rsync src dst
将远端主机 rsync daemon 的 module 模块内容同步到本地
rsync -av host::module /dest
将本端文件同步到远端
rsync -av /src/ host::module
省略主机名,与第一个主机参数样式相同的其他参数,可以省略主机名
rsync -av host:file1 :file2 host:file{3,4} /dest/ rsync -av host::modname/file{1,2} host::modname/file3 /dest/ rsync -av host::modname/file1 ::modname/file{3,4}
使用SSH
rsync -av -e "ssh -l ssh-user" rsync-user@host::module /dest
rsync 客户端参数
参数选项 | 说明 |
---|---|
-v, --verbose | 此选项会增加传输过程中提供的信息量。默认情况下,rsync以静默方式工作。单个-v将为您提供有关正在传输的文件的信息以及最后的简要摘要。两个-v选项将为您提供有关正在跳过哪些文件的信息以及最后的更多信息。只有在调试rsync时才应使用两个以上的-v选项。 |
-q, --quiet | 此选项会减少传输过程中提供的信息量,尤其是抑制来自远程服务器的信息消息。从cron调用rsync时,此选项很有用。 |
--no-motd | 此选项会抑制motd信息,但它也会抑制守护程序响应“rsync host ::”请求而发送的模块列表。 |
-c, --checksum | 使用此选项意味着将禁用快速检查,每个文件都采用计算校验码的方式来检查文件是否一致。 |
-a, --archive | 相当于-rlptgoD,递归,并希望保留几乎所有东西。 |
--no-OPTION | 使用no-OPTION 关闭选项,如 --no-perms 、--no-D |
-r, --recursive | 递归 |
-R, --relative | 使用相对路径,会保留源目录的目录结构。如rsync -av /foo/bar/baz.c remote:/tmp/ ,会将baz.c传到/tmp下,而使用了-R ,则在/tmp下的文件结构将会是foo/bar/baz.c。 |
--no-implied-dirs | 不发送指定目录的属性,避免在目标使用--relative删除连接重新传输文件。 |
-b, --backup | 使用此选项,在传输或删除每个文件时,将重命名预先存在的目标文件。你可以使用--backup-dir和--suffix选项控制备份文件的位置以及附加的后缀(如果有)。 |
--backup-dir=DIR | 结合--backup选项使用,指定备份存放路径。 |
--suffix=SUFFIX | 结合--backup选项,指定备份文件的后缀。 |
-u, --update | 当目标文件的更新时间比源文件新时,则跳过此文件。 |
--inplace | 此选项更改rsync在需要更新数据时传输文件的方式:直接写入(默认为创建副本再重命名的方式) |
--append | 这会导致rsync通过将数据附加到文件末尾来更新文件,这假定接收方已存在的数据与发送方文件的开头相同。如果需要传输文件并且其在接收方上的大小与发送器上的大小相同或更长,则会跳过该文件。当文件不需要传输时,这不会干扰文件的非内容属性(例如权限,所有权等)的更新。 |
--append-verify | 这与--append选项的工作方式类似,但接收端的现有数据包含在完整文件校验和验证步骤中,如果最终验证步骤失败,则会导致重新发送文件。 |
-d, --dirs | --recursive类似,但是要求要以.或/结尾,如:".", "dir/.", "dir/" |
-l, --links | 创建符号链接。 |
-L, --copy-links | 遇到软链接时,拷贝链接的目标文件。 |
--copy-unsafe-links | 当软链接超出了同步目录时,将拷贝链接目标文件。 |
--safe-links | 忽略超出同步目录的软链接。 |
-k, --copy-dirlinks | |
-K, --keep-dirlinks | |
-H, --hard-links | |
-p, --perms | 此选项使接收rsync将目标权限设置为与源权限相同。 |
-E, --executability | 当未启用--perms时,此选项会使rsync保留常规文件的可执行性(或不可执行性)。 |
--chmod=CHMOD | 此选项告诉rsync将一个或多个以逗号分隔的“chmod”模式应用于传输中文件的权限。结果值被视为发送方为文件提供的权限,这意味着如果未启用--perms,此选项似乎对现有文件没有影响。 |
-A, --acls | 此选项使rsync将目标ACL更新为与源ACL相同。 |
-X, --xattrs | 此选项使rsync将目标扩展属性更新为与源扩展属性相同。 |
-o, --owner | 此选项使rsync将目标文件的所有者设置为与源文件相同,仅root用户运行时有效。 |
-g, --group | 此选项使rsync将目标文件的所属组设置为与源文件相同,仅root用户运行时有效。 |
--devices | 此选项使rsync将字符和块设备文件传输到远程系统以重新创建这些设备,仅root用户运行时有效。 |
--copy-devices | 将设备内容复制为常规文件。 |
--specials | 此选项使rsync传输特殊文件,如命名套接字和fifos。 |
-D | 相当于 --devices --specials。 |
-t, --times | 更新修改时间。 |
-O, --omit-dir-times | 保留修改时间时省略目录。 |
--super | 让接收端尝试以超级用户权限接收数据。 |
--fake-super | 服务端参数,会覆盖配置文件中的 fake super 选项。 |
-S, --sparse | 尝试有效地处理稀疏文件,以便它们在目标上占用更少的空间。 |
-n, --dry-run | 尝试执行,不做任何更改,一般用于调试,通常与-v, - verbose和/或 -i,--itemize-changes选项结合使用。 |
-W, --whole-file | 禁用rsync的delta-transfer算法。 |
-x, --one-file-system | 递归时避免跨越文件系统的边界(即不能跨越挂载点) |
-B, --block-size=SIZE | 强制rsync的delta-transfer算法中使用的块大小为固定值。 |
-e, --rsh=COMMAND | 使用远程shell程序,常用用法 rsync -avz -e "ssh -p 2222" ... |
--rsync-path=PROGRAM | 指定要在远程主机上运行的程序以启动rsync。 |
--existing | 跳过创建目标上尚不存在的文件(包括目录)。如果此选项与--ignore-existing选项结合使用,则不会更新任何文件(如果您只想删除无关文件,这将非常有用)。 |
--ignore-existing | 跳过目标上已存在的文件更新。 |
--remove-source-files | 接收端接收成功后,删除发送端的源文件。 |
--del | --delete-during 的别名。 |
--delete | 从目标目录删除源不存在的文件。 |
--delete-before | 接收端在xfer之前删除。 |
--delete-during | 在接收的过程中删除。 |
--delete-delay | 在传输过程中收集删除项,接收完成后再删除。 |
--delete-after | 接收者在传输后删除,而不是在传输过程中删除。 |
--delete-excluded | 排除删除项。 |
--ignore-errors | 即使存在I / O错误,也会删除。 |
--force | 强制删除目录。 |
--max-delete=NUM | 删除的最大文件数。 |
--max-size=SIZE | 不传输任何大于SIZE的文件。 |
--min-size=SIZE | 不传输任何小于SIZE的文件。 |
--partial | 默认情况下,rsync会删除未传输完成的文件,此选项指定保留未传输完成的文件。 |
--partial-dir=DIR | 指定未传输完成的文件存放路径,下次传输完成后,会将此文件删除。 |
--delay-updates | 先将更新文件保存到临时目录,传输完成后再一起重命名,使得更新原子化。 |
-m, --prune-empty-dirs | 删除空目录。 |
--numeric-ids | 传输文件的用户id,而不是传输用户名。 |
--timeout=SECONDS | 以秒为单位设置最大I / O超时。如果在指定时间内没有传输数据,则rsync将退出。默认值为0,表示没有超时。 |
--contimeout=SECONDS | 连接超时时间。 |
-I, --ignore-times | 通常,rsync将跳过大小相同且具有相同修改时间戳的文件。此选项会关闭此“快速检查”行为。 |
--size-only | 这修改了rsync的“快速检查”算法,仅查找文件大小发生变化的文件。 |
--modify-window=NUM | 比较两个时间戳时,如果时间戳相差不超过修改窗口值,则rsync将时间戳视为相等。默认值为0。 |
-T, --temp-dir=DIR | 指定临时文件目录。 |
-y, --fuzzy | 模糊扫描。此选项告诉rsync它应该查找缺少的目标文件的基础文件。当前算法与具有相同大小和修改时间的文件或类似命名文件的目标文件在同一目录中查找。如果找到,rsync使用模糊基础文件来尝试加速传输。 |
--compare-dest=DIR | 指定模糊扫描的搜索路径。 |
--copy-dest=DIR | 此选项的行为类似于--compare-dest,但rsync还会使用本地副本将DIR中找到的未更改文件复制到目标目录。这对于在保留现有文件的同时进行到新目的地的传输非常有用,然后在成功传输所有文件时执行闪存切换。 |
--link-dest=DIR | 此选项的行为类似于--copy-dest,但未更改的文件从DIR硬链接到目标目录。所有保留的属性(例如权限,可能是所有权)中的文件必须相同,以便将文件链接在一起。 |
-z, --compress | 启用压缩。 |
--compress-level=NUM | 压缩等级。 |
--skip-compress=LIST | 指定某写后缀的文件不压缩,格式为:--skip-compress=gz/zip/7z 。默认不压缩的后缀为:7z ace avi bz2 deb gpg gz iso jpeg jpg lz lzma lzo mov mp3 mp4 ogg png rar rpm rzip tbz tgz tlz txz xz z zip |
-C, --cvs-exclude | 这是一个内置的排除规则:RCS SCCS CVS CVS.adm RCSLOG cvslog. tags TAGS .make.state .nse_depinfo ~ # .# , _$* *$ .old .bak .BAK .orig .rej .del- .a .olb .o .obj .so .exe .Z .elc .ln core .svn/ .git/ .hg/ .bzr/ |
-f, --filter=RULE | 指定过滤规则。 |
-F | 是--filter的一个速记,相当于 --filter='dir-merge/.rsync-filter' |
--exclude=PATTERN | 此选项是--filter选项的简化形式 ,默认为排除规则,不允许使用普通过滤规则的完整规则解析语法。 |
--exclude-from=FILE | 此选项与--exclude 选项相关,但它指定包含排除模式的FILE(每行一个)。文件中的空行和以';'开头的行 或'#'被忽略。如果FILE是-,则将从标准输入读取列表 |
--include=PATTERN | 包含规则。 |
--include-from=FILE | 从文件引入包含规则。 |
--files-from=FILE | 指定确切的文件列表。 |
-0, --from0 | 文件中读取的规则/文件名由null('\0')字符终止,而不是NL,CR或CR + LF。 |
-s, --protect-args | 将大多数参数原封不动发送到远端,而不允许远端shell解释它们。 |
--address=ADDRESS | 指定rsync客户端使用哪个地址和远端连接。 |
--port=PORT | 指定远端 rsync daemon 的端口号。 |
--sockopts=OPTIONS | 设置套接字选项。 |
--blocking-io | 告诉rsync在启动远程shell传输时使用阻塞I/O. 如果远程shell是rsh或remsh,则rsync默认使用阻塞I/O,否则默认使用非阻塞I/O。 |
--stats | 打印统计信息。 |
-8, --8-bit-output | 不转义输出。 |
-h, --human-readable | 输出易读格式。 |
--progress | 输出进度。 |
-P | 相当于 --partial --progress。 |
-i, --itemize-changes | 输出所有更新的更改摘要。 |
--out-format=FORMAT | 指定输出格式。 |
--log-file=FILE | 日志文件,用默认格式“%i%n%L”。 |
--log-file-format=FMT | 指定日志输出格式。 |
--password-file=FILE | 密码文件。 |
--list-only | 只列出文件列表。 |
--bwlimit=KBPS | 限速。 |
--write-batch=FILE | |
--only-write-batch=FILE | |
--read-batch=FILE | |
--protocol=NUM | 指定rsync使用的版本。 |
--iconv=CONVERT_SPEC | 字符集转换。 |
-4, --ipv4 | ipv4 |
-6, --ipv6 | ipv6 |
--version | 打印rsync版本号 |
(-h) --help | 打印一个简短的帮助页面 |