zoukankan      html  css  js  c++  java
  • rsync用法及参数详解

    rsync

    rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。

    不考虑rsync的实现细节,就文件同步而言,涉及了源文件和目标文件的概念,还涉及了以哪边文件为同步基准。例如,想让目标主机上的文件和本地文件保持同步,则是以本地文件为同步基准,将本地文件作为源文件推送到目标主机上。反之,如果想让本地主机上的文件和目标主机上的文件保持同步,则目标主机上的文件为同步基准,实现方式是将目标主机上的文件作为源文件拉取到本地。当然,要保持本地的两个文件相互同步,rsync也一样能实现,这就像Linux中cp命令一样,以本地某文件作为源,另一文件作为目标文件,但请注意,虽然rsync和cp能达到相同的目的,但它们的实现方式是不一样的。

    既然是文件同步,在同步过程中必然会涉及到源和目标两文件之间版本控制的问题,例如是否要删除源主机上没有但目标上多出来的文件,目标文件比源文件更新(newer than source)时是否仍要保持同步,遇到软链接时是拷贝软链接本身还是拷贝软链接所指向的文件,目标文件已存在时是否要先对其做个备份等等。

    rsync同步过程中由两部分模式组成:决定哪些文件需要同步的检查模式以及文件同步时的同步模式。

    (1).检查模式是指按照指定规则来检查哪些文件需要被同步,例如哪些文件是明确被排除不传输的。默认情况下,rsync使用"quick check"算法快速检查源文件和目标文件的大小、mtime(修改时间)是否一致,如果不一致则需要传输。当然,也可以通过在rsync命令行中指定某些选项来改变quick check的检查模式,比如"--size-only"选项表示"quick check"将仅检查文件大小不同的文件作为待传输文件。rsync支持非常多的选项,其中检查模式的自定义性是非常有弹性的。

    (2).同步模式是指在文件确定要被同步后,在同步过程发生之前要做哪些额外工作。例如上文所说的是否要先删除源主机上没有但目标主机上有的文件,是否要先备份已存在的目标文件,是否要追踪链接文件等额外操作。rsync也提供非常多的选项使得同步模式变得更具弹性。

    相对来说,为rsync手动指定同步模式的选项更常见一些,只有在有特殊需求时才指定检查模式,因为大多数检查模式选项都可能会影响rsync的性能。

    rsync 的命令格式(用法)为:

    1)本地使用:
    rsync [OPTION...] SRC... [DEST]
     
    2)通过远程 Shell 使用:
    拉: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    推: rsync [OPTION...] SRC... [USER@]HOST:DEST
     
    3)访问 rsync 服务器:
    拉: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    推: rsync [OPTION...] SRC... [USER@]HOST::DEST
    拉: rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
    推: rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

    其中:

    • SRC: 是要复制的源位置

    • DEST: 是复制目标位置

    • 若本地登录用户与远程主机上的用户一致,可以省略 USER@

    • 使用远程 shell 同步时,主机名与资源之间使用单个冒号“:”作为分隔符

    • 使用 rsync 服务器同步时,主机名与资源之间使用两个冒号“::”作为分隔符

    • 当访问 rsync 服务器时也可以使用 rsync:// URL

    • “拉”复制是指从远程主机复制文件到本地主机

    • “推”复制是指从本地主机复制文件到远程主机

    • 当进行“拉”复制时,若指定一个 SRC 且省略 DEST,则只列出资源而不进行复制

      下面列出常用选项:

      选项说明
      -a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (注意不包括 -H)
      -r, ––recursive 对子目录以递归模式处理
      -l, ––links 保持符号链接文件
      -H, ––hard-links 保持硬链接文件
      -p, ––perms 保持文件权限
      -t, ––times 保持文件时间信息
      -g, ––group 保持文件属组信息
      -o, ––owner 保持文件属主信息 (super-user only)
      -D 保持设备文件和特殊文件 (super-user only)
      -z, ––compress 在传输文件时进行压缩处理
      ––exclude=PATTERN 指定排除一个不需要传输的文件匹配模式
      ––exclude-from=FILE 从 FILE 中读取排除规则
      ––include=PATTERN 指定需要传输的文件匹配模式
      ––include-from=FILE 从 FILE 中读取包含规则
      ––copy-unsafe-links 拷贝指向SRC路径目录树以外的链接文件
      ––safe-links 忽略指向SRC路径目录树以外的链接文件(默认)
      ––existing 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件
      ––ignore-existing 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件
      -b, ––backup 当有变化时,对目标目录中的旧版文件进行备份
      ––backup-dir=DIR 与 -b 结合使用,将备份的文件存到 DIR 目录中
      ––link-dest=DIR 当文件未改变时基于 DIR 创建硬链接文件
      ––delete 删除那些接收端还有而发送端已经不存在的文件
      ––delete-before 接收者在传输之前进行删除操作 (默认)
      ––delete-during 接收者在传输过程中进行删除操作
      ––delete-after 接收者在传输之后进行删除操作
      ––delete-excluded 在接收方同时删除被排除的文件
      -e, ––rsh=COMMAND 指定替代 rsh 的 shell 程序
      ––ignore-errors 即使出现 I/O 错误也进行删除
      ––partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
      ––progress 在传输时显示传输过程
      -P 等价于 ––partial ––progress
      ––delay-updates 将正在更新的文件先保存到一个临时目录(默认为 “.~tmp~”),待传输完毕再更新目标文件
      -v, ––verbose 详细输出模式
      -q, ––quiet 精简输出模式
      -h, ––human-readable 输出文件大小使用易读的单位(如,K,M等)
      -n, ––dry-run 显示哪些文件将被传输
      ––list-only 仅仅列出文件而不进行复制
      ––rsyncpath=PROGRAM 指定远程服务器上的 rsync 命令所在路径
      ––password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令,通常在 cron 中连接 rsync 服务器时使用
      -4, ––ipv4 使用 IPv4
      -6, ––ipv6 使用 IPv6
      ––version 打印版本信息
      ––help 显示帮助信息
    • 若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。

    • 若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。

    摘自:

    https://www.cnblogs.com/noxy/p/8986164.html

    http://www.cnblogs.com/f-ck-need-u/p/7220009.html

  • 相关阅读:
    正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!
    ArcGIS10 图框生成和批量打印工具V5.0正式发布
    c# winform未能找到引用的组件“Excel”的解决办法
    图框工具5.0 for ArcGIS10正式发布
    python UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 2: ordinal not in range(128)错误解决办法
    ArcGIS地图文档MXD效率慢的一点建议(转)
    ArcGISEngine实现图层输出kml
    云南云测采用本人开发所有权辅助建库软件,获得好评
    瑞星发力高端企业级市场 连续中标政府大单 狼人:
    臭名昭著的十种Web恶意攻击软件 狼人:
  • 原文地址:https://www.cnblogs.com/dancesir/p/14059841.html
Copyright © 2011-2022 走看看