zoukankan      html  css  js  c++  java
  • [cmd] rsync

    简介

    rsync 即 remote sync,一个远程与本地文件同步工具。rsync 使用的算法能够最小化所需复制的数据,因为它只移动那些修改了的文件。

    rsync 是一个非常灵活的同步工具,它也是一种使用该工具的网络协议名称。本文中所说的 rsync 都是指同步工具,而非网络协议。由于它在类 Unix 系统中广为流行,它也是大多数 Linux 发行版的默认自带工具。

    基本语法

    rsync 的基本语法非常简单,类似于 ssh, scp 和 cp 命令的语法。

    例如我们创建两个目录和一些文件:

    cd ~
    mkdir dir1 dir2
    touch dir1/file{1..100}
    

    现在 dir1 目录中有 100 个空文件,一个空目录 dir2,现在同步 dir1 目录中的内容到 dir2:

    rsync -r dir1/ dir2
    

    -r 选项表示递归,这在同步目录时非常重要。对以上操作,我们也可以用 -a 选项来实现:

    rsync -a dir1/ dir2
    

    -a 选项表示 archive,递归同步文件,保留符号链接,特殊或设备文件,修改时间,用户组,所有人和权限。一般情况下使用 -r 就可以了。

    注意

    你也许已经留意到以上示例第一个参数后面的 / 符号,它表示 “dir1 的内容”。

    如果没有 / 符号,例如 rsync -r dir1 dir2,则表示需要同步的对象包括目录 dir1,于是在 dir2 目录结构同步成了 dir2/dir1/[100 files] ,因此在同步之前一定要小心检查。

    要检查 rsync 即将执行的操作,可以使用 -n--dry-run 选项,该选项会打印出同步结果,但实际上并不做真正的同步操作,一般会增加一个 -v 选项来查看输出结果,例如:

    rsync -anv dir1/ dir2
    

    同步远程文件

    rsync 同步远程文件语法和 scp 命令相似,只要你拥有远程 SSH 访问权限,同时远程和本地都安装了 rsync 命令。

    推送文件至远程

    rsync -a dir1 username@remote_host:destination_directory
    

    拉拽文件至本地

    rsync -a username@remote_host:~/path/to/dir1 local_destination_path
    

    无论是推送还是拉拽,第一个参数总是源文件,第二参数才是目标文件。

    常用选项

    如果你要同步一些未压缩的文件,你可以使用 -z 选项来压缩文件并传输以减少网络传输量。

    rsync -az src dest
    

    另外一个非常有用的选项是 -P,该选项结合了 --progress--partial 两个选项的功能,--progress 表示显示同步进度条,--partial 表示断点续传。

    rsync -azP src dest
    

    要两个目录绝对同步,那就必须在目标目录中删除源目录中已删除的文件。在默认情况下,rsync 不从目标目录中删除任何东西,但我们可以使用 --delete 选项来修改这种默认行为:

    rsync -a --delete src dest
    

    如果你想要排除某些文件进行同步,你可以使用 --exclude=pattern 选项,多个文件之间使用 , 分隔:

    rsync -a --exclude=pattern1,pattern2 src dest
    

    使用不同的 SSH 端口:

    rsync -azP -e "ssh -p 2422" src dest
    

    附录

    1. How To Use Rsync to Sync Local and Remote directories on a VPS
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/ifantastic/p/4125666.html
Copyright © 2011-2022 走看看