美文网首页
有趣的 Linux 命令(二)—— rsync 命令

有趣的 Linux 命令(二)—— rsync 命令

作者: GCYML | 来源:发表于2020-04-27 13:33 被阅读0次

    定义

    rsync 是一个快速的,通用的远程及本地文件同步工具。它通过增量传输算法,仅发传送源文件和目标中的差异部分,来减少通过网络发送的数据量,因此速度相当快。

    在 LInux 中常用的远程同步方式有 rsync 和 scp 两种。scp 采用的是全量更新的方式,rsync 采用的是增量更新。当目标文件不存在时,两者的速度相差不大,甚至 scp 不怎么占资源,理论上 rsync 在这种场景下并没有优势。另外一个差异就是,scp 是加密传输的,rsync 则不是。

    主要特点

    rsync 有两种使用方式,一是通过命令的方式,其使用方法和 cp、scp 无异;另一种是作为服务来使用,通过 rsync 服务器端为基础进行数据镜像同步。搭建 rsync下服务本文不做介绍,有兴趣的读者可自行查阅。下面就是官方文档中介绍的关于rsync的几大优点:

    1. 可以镜像保存整个目录树和文件系统;
    2. 可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;
    3. 可以增量同步数据,文件传输效率高,因而同步时间短;
    4. 可以使用rcp、ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;
    5. 支持匿名传输,以方便进行网站镜像等;

    语法

    # 本地使用
    rsync [OPTION] … SRC   DEST
    # 通过远程 Shell 使用
    推:rsync [OPTION] … SRC   [user@]host:DEST
    拉:rsync [OPTION] … [user@]host:SRC   DEST
    # 访问 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
    

    选项

    -a 包含-rtplgoD
    -r 同步目录时要加上,类似cp时的-r选项
    -v 同步时显示一些信息,让我们知道同步的过程
    -l 保留软连接
    -L 加上该选项后,同步软链接时会把源文件给同步
    -p 保持文件的权限属性
    -o 保持文件的属主
    -g 保持文件的属组
    -D 保持设备文件信息
    -t 保持文件的时间属性
    --delete 删除DEST中SRC没有的文件
    --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
    -P 显示同步过程,比如速率,比-v更加详细
    -u 加上该选项后,如果DEST中的文件比SRC新,则不同步
    -z 传输时压缩
    

    常见用法

    本地磁盘同步数据

    rsync -a --delete /etc/ /www/
    

    基于ssh的rsync远程同步数据(推)

    rsync -av /etc [root@192.168.249.135](mailto:root@192.168.249.135):/www/
    

    参考链接:

    日常运维--rsync同步工具
    rsync基本使用详解

    相关文章

      网友评论

          本文标题:有趣的 Linux 命令(二)—— rsync 命令

          本文链接:https://www.haomeiwen.com/subject/ejsywhtx.html