zoukankan      html  css  js  c++  java
  • N天学习一个linux命令之rsync

    用途

    主要用于本地和远程主机同步文件

    特性

    1 使用增量传输算法(delta-transfer algorithm)
    2 支持ssh,rsync协议
    3 可以用于本地同步文件
    4 本地和远程主机都需要安装rsync命令

    用法

    本地同步

    rsync [OPTION...] SRC... [DEST]
    

    远程同步

    # ssh
    Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
    Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
    
    # rsync
    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
    

    常用选项

    --help
    显示帮助信息

    --version
    显示命令版本

    -v, --verbose
    输出更加详细的信息

    -q, --quiet
    尽可能少输出信息

    -I, --ignore-times
    默认情况下,rsync会忽略文件大小一样且修改时间相同的文件,这样可以提高检查速度。带上这个参数会每次都检查

    --size-only
    默认情况下会检查文件大小和最后修改时间,这个参数告诉程序只检查大小,适应于没有时间戳的场景

    -c, --checksum
    使用校验和比较文件差异

    -a, --archive
    跟-rlptgoD这些选项一样的意思,递归整个目录,保持文件属性,不包含硬链接文件

    --no-OPTION
    关闭OPTION选项,前后顺序很重要

    -r, --recursive
    递归复制

    -R, --relative
    使用相对路径,发送方整个路径都会包含

    --no-implied-dirs
    排除链接

    -b, --backup
    备份

    --backup-dir=DIR
    设置备份目录

    --suffix=SUFFIX
    备份文件后缀,默认是~

    -u, --update
    忽略那些已存在且文件修改时间戳比发送方还新的文件

    -l, --links
    重新创建软链

    -L, --copy-links
    复制软链指向的文件

    --copy-unsafe-links
    复制软链,不管有没有包含在被复制的目录里

    --safe-links
    不复制目录树外的软链

    -k, --copy-dirlinks
    软链当做目录处理

    -K, --keep-dirlinks

    -H, --hard-links

    -p, --perms
    保留权限

    --existing, --ignore-non-existing
    不同步新文件

    --ignore-existing
    不同步已存在的文件

    --delete
    删除不存在的文件

    --delete-excluded
    删除指定的文件

    --ignore-errors
    忽略错误

    --max-size=SIZE
    指定最大的传输文件大小,超过了不同步

    --min-size=SIZE
    指定最小的传输文件大小,小于不同步

    --rsync-path=PROGRAM
    指定远程服务器执行的程序路径

    --exclude=PATTERN
    需要排除的文件

    --include=PATTERN
    指定同步的文件

    --files-from=FILE
    从FILE文件读取需要同步的文件列表

    -s, --protect-args
    不转义参数,不展开参数

    -z, --compress
    传输时压缩数据

    --skip-compress=LIST
    不需要压缩的文件扩展名列表,多个使用/分隔

    --stats
    显示统计信息

    -h, --human-readable
    人类可读方式格式化

    --partial
    开启断点续传

    --partial-dir=DIR

    --progress
    显示进度

    --list-only
    只显示,不同步

    --bwlimit=KBPS
    指定传输最大的速率,单位(a maximum transfer rate in kilobytes per second)

    -n, --dry-run
    尝试运行,不做实际的改变

    -e
    指定远程通讯使用的shell,默认是ssh

    实践

    1 本地同步lua-5.3.4目录下所有.c,.h扩展名的文件到本地目录lua-test

    [root@vm ~]# rsync -avz --include=*/ --include=*.c --include=*.h --exclude=* lua-5.3.4/ lua-test
    

    2 本地同步lua-5.3.4目录下的所有目录(不包含文件)到本地目录lua-test

    [root@vm ~]# rsync -avz --include=*/ --exclude=* lua-5.3.4/ lua-test
    

    3 本地目录lua-5.3.4同步到远程主机wadeyu家目录

    rsync -avz -e 'ssh -p 22' lua-5.3.4 wadeyu@192.168.2.8:~
    

    4 远程同步到本地

    rsync -avz -e 'ssh -p 22' wadeyu@192.168.2.8:~/lua-5.3.4/ ./lua-5.3.4-test
    

    参考资料

    【1】man rsync
    【2】rsync 精确同步文件用法
    https://blog.csdn.net/knight_zhen/article/details/47109077

  • 相关阅读:
    调用webservice接口报错
    Java设计模式之使用反序列化的方式实现单例模式
    Java设计模式之使用枚举类的方式创建单例
    使用饿汉模式创建单例模式
    Java 查看运行生成的字节码文件 反汇编
    Java设计模式之--单例模式-使用懒汉模式创建
    git无法 cherry pick到其他分支
    Android之Handler用法总结
    Java之观察者模式
    Android之Activity与Service通信
  • 原文地址:https://www.cnblogs.com/wadeyu/p/8710584.html
Copyright © 2011-2022 走看看