用途

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

特性

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

N天学习一个linux命令之rsync的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  5. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  6. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  7. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  8. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

  9. N天学习一个linux命令之ip

    用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...

随机推荐

  1. thinkphp结合云之讯做短信验证码

    thinkphp结合云之讯做短信验证码先去云之讯注册账号 网址http://www.ucpaas.com/ 注册云之讯平台账号,即可免费获得10元测试费用测试够用啦 解压附件到 ThinkPHP\Li ...

  2. Akka源码分析-Remote-收消息

    上一遍博客中,我们分析了网络链接建立的过程,一旦建立就可以正常的收发消息了.发送消息的细节不再分析,因为对于本地的actor来说这个过程相对简单,它只是创立链接然后给指定的netty网路服务发送消息就 ...

  3. Coursera公开课-Machine_learing:编程作业2

    第三周编程作业:Logistic Regression 代码包在gitlab上:https://gitlab.com/luntai/Machine_Learning

  4. [转]通过Net Manager 配置Oracle 11g本地监听服务(listener service)

    本文转自:http://blog.csdn.net/mozart_cai/article/details/8596504 [Target] 通过ip address 监听orcl服务,而不是通过loc ...

  5. StackOverflowError&OutOfMemoryError区别

    在Java虚拟机规范中,针对内存分配规定两种异常状况,即StackOverflowError和OutOfMemoryError. StackOverflowError:当线程请求的内存大小大于所配置的 ...

  6. 图解TCP/IP笔记(3)——IP协议

    目录 IP协议 IP寻址 IP地址组成 IP地址分类 广播地址 子网掩码 全局地址和私有地址 IP协议 跨越不同数据链路,实现两端节点之间的数据包传输 数据链路:只负责某一个区间之间的通信传输 IP协 ...

  7. cmd 切换目录和配置环境变量

    记录一下: 在用cmd进行切换盘符的时候, 如果是从 C盘切换到其他盘的话: D:直接回车就行了. 如果是在同一个盘符内切换文件夹的话,cd D:\ComputerSoft\curl\curl-7.6 ...

  8. 02--SQLite操作一步到位

    SQLite数据库(一):基本操作 SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使用方便.结构紧凑.高效.可靠. 与其他数据库管理系 ...

  9. nagios 安装pnp4nagios插件

    Naigos install pnp4nagios 绘图插件 原文地址:http://www.cnblogs.com/caoguo/p/5022230.html [root@Cagios ~]# yu ...

  10. Python_多线程1(创建线程,简单线程同步)

    threading 模块除了包含 _thread 模块中的所有方法外,还提供的其他方法: threading.currentThread(): 返回当前的线程变量. threading.enumera ...