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
  • 相关阅读:
    关于Idea中右边的maven projects窗口找不到了如何调出来
    如何解决IntelliJ idea的maven工程提示的Cannot Resolve Symbol
    代码战争
    golang学习笔记----并发
    golang --学习笔记 运行时间计算
    golang ---timeb
    go ---MQTT client
    golang --strings
    Windows ----tasklist/taskkill
    转Tasklist(windows)
  • 原文地址:https://www.cnblogs.com/ifantastic/p/4125666.html
Copyright © 2011-2022 走看看