一直没有对这个命令太有深入的理解

简介

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

rsync - 远程同步工具的更多相关文章

  1. Rsync远程同步工具使用

    rsync远程同步工具使用 Rsync(remote synchronize) 是一个远程数据同步工具,可以使用"Rsync算法"同步本地和远程主机之间的文件.Rsync的好处是只 ...

  2. [cmd] rsync - 远程同步工具

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

  3. hadoop(六)rsync远程同步|xsync集群分发(完全分布式准备三)|8

    前置环境准备:centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一)scp命令copy文件和配置(hadoop完全分布式准备二) rsync远程同步工具 优点 rsync主 ...

  4. Linux实战教学笔记21:Rsync数据同步工具

    第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...

  5. Rsync数据同步工具

                                        Rsync数据同步工具 什么是Rsync? Rsync是一款开源的.快速的.多功能的,可以实现全量及增量的本地或原程数据同步备份 ...

  6. rsync 远程同步 实时同步备份 两种免交互的方式实现实时备份

    rsync 远程同步: 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步 作用:做数据备份 备份方式:      完全备份      增量备份 ...

  7. rsync远程同步的基本配置与使用

    rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync的官 ...

  8. rsync数据同步工具的配置

    rsync数据同步工具的配置 1. rsync介绍 1.1.什么是rsync rsync是一款开源的快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于 unix ...

  9. 【基础】:Rsync数据同步工具

    第二十一节 Rsync数据同步工具 1.1 Rsync介绍 1.1.1 什么是Rsync? 1.1.2 Rsync简介 1.3 Rsync的特性 1.1.4 Rsync的企业工作场景说明 1.2 Rs ...

随机推荐

  1. TPYBoard—MicroPython开发板免费试用!你最想抱走哪款?

    TPYBoard开发板自上市开售以来,受到了广大硬件及MicroPython爱好者的一致好评,许多人提出想试用开发板的申请.为此,TPYBoard特推出多款开发板免费试用活动,感兴趣的朋友抓紧申请吧! ...

  2. adb 获取Android手机信息命令(2)

    #Android命令 #获取手机名称 GET_PHONE_NAME = 'adb shell getprop ro.product.model' #获取手机版本 GET_PHONE_VERSION = ...

  3. commons -lang(2) RandomStringUtils RandomUtils

    上一篇是StringUtils 链接http://www.cnblogs.com/tele-share/p/8060129.html 1.RandomStringUtils 1.1模拟实现random ...

  4. duilib基本框架

    最近我一个同学在项目中使用到了duilib框架,但是之前并没有接触过,他与我讨论这方面的内容,看着官方给出的精美的例子,我对这个库有了很大的兴趣,我自己也是初学这个东东,我在网上花了不少时间来找相关的 ...

  5. echart(2),模拟数据导入篇

    先上图,就是介样子的: 所模拟的效果就是讲左下角的li里面的数据取出来,然后用环形图的展示出数据. 看代码截图: 1.总的框架图: 2.循环取数据的js代码: 3.echart提供额官方api的代码 ...

  6. koa2教程(一)-快速开始

    来自Koa官网对于Koa的简介: koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 async ...

  7. Oracle01——基本查询、过滤和排序、单行函数、多行函数和多表查询

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7272236.html Oracle的集群 Oracle的体系结构 SQL> --当 ...

  8. 运算符、单双分支&多分支、while循环

    一 .运算符: 1. 算术运算符: " + "." - " ." * " ." / " 分别为加.减.乘.除. % 是& ...

  9. Centos搭建Docker环境

    安装Docker 安装Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: yum install d ...

  10. 【JavaScript的五种基本数据类型及转换】

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...