zoukankan      html  css  js  c++  java
  • rsync 文件同步(差异复制)

    Rsync 是一种快速且极其通用的文件复制工具。以其 Delta 传输算法,通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量

    Rsync 的几种复制方式:Local,SSH 和 RSH,TCP(rsync://URL)(但不支持在两个远程主机之间复制文件)

    本地访问:
    rsync [OPTION...] SRC... [DEST]
    
    通过远程 shell 访问:
    拉取 Pull:
        rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    推送 Push:
        rsync [OPTION...] SRC... [USER@]HOST:DEST
    
    通过 rsync daemon 访问:
    拉取 Pull:
        rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
    推送 Push:
        rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

    安装

    yum install -y rsync

    常用参数

    -z:传输时进行压缩提高效率
    -v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息
    -P:显示文件传输的进度信息
    -a --archive:归档模式,表示递归传输并保持文件属性,等同于"-rtopgDl"
    -r --recursive:以递归模式拷贝目录
    -R --relative:使用相对路径
    -l --links:如果文件是软链接,则拷贝软链接本身而非软链接所指向的文件
    -L --copy-links:如果文件是软链接,拷贝软链接指向的文件
    -W --whole-file:拷贝文件时不进行增量检测
    -t --times:保持 mtime 属性
    
    rsync 默认用"quick check"算法决定哪些文件需要增量传输。此算法只比较文件的大小和 mtime,即使其它属性不同也会认为它们是完全相同的文件,从而不需要增量传输
    建议任何时候都加上"-t",否则目标文件 mtime 会设置为系统时间,导致下次更新检查出 mtime 不同而导致增量传输无效

    使用

    源路径如果为目录,不带斜线表示目录本身和目录中的文件,带斜线表示目录中的文件,不包括本身

    # 复制远程计算机 foo 上的 /src/bar/ 目录中的文件到本地 /data/tmp 目录中
    rsync -avz foo:/src/bar/ /data/tmp
    
    # 复制远程计算机 foo 上的 /src/bar/ 目录到本地 /data/tmp 目录中
    rsync -avz foo:/src/bar /data/tmp
    
    # 以下命令等效
    rsync -av /src/foo /dest
    rsync -av /src/foo/ /dest/foo

    文件名(* .c)中的通配符扩展为文件列表由 shell 在运行 rsync 之前处理,而不是由 rsync 本身处理

    # 复制当前路径下所有以 .c 结尾的文件至远程计算机 foo 的 /src 目录中
    # 对于远程系统上已存在的文件,会使用 rsync 远程更新协议,通过仅发送数据中的差异来更新文件
    rsync -t *.c foo:/src/

    https://rsync.samba.org/

    http://www.cnblogs.com/f-ck-need-u/p/7221713.html

  • 相关阅读:
    匈牙利算法
    Tabbed Activity = viewpager + fragment ?
    gdb调试多线程多进程
    gdb 调试,当发现程序退出,需要定位程序退出位置时。
    将Linux的信号量sem_t封装成事件对象
    Golang包管理工具govendor的使用&go mod
    go get命令详解
    GoLand生成可执行文件(Windows、Linux)
    Linux下线程pid和tid
    理解Linux的进程,线程,PID,LWP,TID,TGID
  • 原文地址:https://www.cnblogs.com/jhxxb/p/10603065.html
Copyright © 2011-2022 走看看