zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Ubuntu(Debian)的aptitude与aptget的区别和联系
    安装lxml相关
    解决Ubuntu 12.04更新后 ”系统的网络服务与此版本的网络管理器不兼容“问题
    Windows下配置Nginx代理Django
    scons入门笔记
    git仓库合并(向原有git仓库中加入新仓库)
    asterisk源码分析(main函数)
    live555源码编译(win7+vs2010)
    asterisk源码目录结构
    小试一题
  • 原文地址:https://www.cnblogs.com/yycc/p/7059353.html
Copyright © 2011-2022 走看看