rsync 是一个用于在本地和远程计算机之间同步文件和目录的命令行工具。它具有许多强大的功能,包括增量传输、压缩和保留权限等。以下是一些 rsync 的常用选项和用法示例:

基本用法

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

常用选项

  • -a--archive:归档模式,表示递归复制,并保持所有文件属性,相当于 -rlptgoD
  • -v--verbose:显示详细信息
  • -z--compress:在传输过程中压缩文件数据
  • -P:显示传输进度并保持部分传输的文件,相当于 --partial --progress
  • -r--recursive:递归处理子目录
  • -l--links:复制符号链接
  • -h--human-readable:以人类可读的格式输出文件大小
  • -e:指定远程 shell 程序,例如 ssh

本地到本地同步

/source/directory/ 目录中的内容同步到 /destination/directory/ 目录:

rsync -av /source/directory/ /destination/directory/

本地到远程同步

将本地目录 /source/directory/ 中的内容同步到远程主机 remotehost/destination/directory/

rsync -avz /source/directory/ user@remotehost:/destination/directory/

远程到本地同步

将远程主机 remotehost/source/directory/ 中的内容同步到本地目录 /destination/directory/

rsync -avz user@remotehost:/source/directory/ /destination/directory/

仅同步修改过的文件

使用 --update 选项仅同步修改过的文件:

rsync -avu /source/directory/ /destination/directory/

删除目标目录中源目录中没有的文件

使用 --delete 选项删除目标目录中源目录中没有的文件:

rsync -av --delete /source/directory/ /destination/directory/

排除某些文件或目录

使用 --exclude 选项排除特定的文件或目录:

rsync -av --exclude 'node_modules' /source/directory/ /destination/directory/

示例命令

  1. 从本地目录同步到远程服务器:

    rsync -avz -e ssh /path/to/local/dir/ user@remotehost:/path/to/remote/dir/
  2. 从远程服务器同步到本地目录:

    rsync -avz -e ssh user@remotehost:/path/to/remote/dir/ /path/to/local/dir/
  3. 仅同步修改过的文件并显示传输进度:

    rsync -avzu --progress /source/directory/ /destination/directory/

使用 -e 选项的示例

-e 选项用于指定用于远程传输的远程 shell 程序(例如 ssh)。默认情况下,rsync 会使用 ssh 进行远程连接,但你可以通过 -e 选项指定其他的远程 shell 或自定义 ssh 参数。

  1. 指定使用 ssh 进行远程传输

    rsync -avz -e ssh /path/to/local/dir/ user@remotehost:/path/to/remote/dir/
  2. 指定自定义的 ssh 参数

    如果你想使用特定的 ssh 参数,比如更改端口号,可以这样做:

    rsync -avz -e 'ssh -p 2222' /path/to/local/dir/ user@remotehost:/path/to/remote/dir/

    这里,-p 2222 指定使用 ssh 的 2222 端口。

  3. 使用不同的远程 shell 程序

    虽然通常情况下会使用 ssh,但你也可以指定其他远程 shell 程序,例如 rsh

    rsync -avz -e rsh /path/to/local/dir/ user@remotehost:/path/to/remote/dir/

具体示例

  1. 使用默认的 ssh 进行远程同步

    rsync -avz -e ssh /home/user/Documents/ user@remotehost:/backup/Documents/
  2. 使用 ssh 并指定端口号

    rsync -avz -e 'ssh -p 2222' /home/user/Documents/ user@remotehost:/backup/Documents/
  3. 使用 ssh 并指定使用特定的身份验证密钥文件

    rsync -avz -e 'ssh -i /path/to/private_key' /home/user/Documents/ user@remotehost:/backup/Documents/
  4. 使用 rsh 进行远程同步

    rsync -avz -e rsh /home/user/Documents/ user@remotehost:/backup/Documents/

rysnc使用手册的更多相关文章

  1. man rsync翻译(rsync命令中文手册)

    本文为命令rsync的man文档翻译,几乎所有的选项都翻译了,另外关于筛选规则部分只翻译了一部分.由于原文很多地方都比较啰嗦,所以译文中有些内容可能容易让国人疑惑,所以我个人在某些地方加上了注释.若有 ...

  2. FREERTOS 手册阅读笔记

    郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...

  3. JS魔法堂:不完全国际化&本地化手册 之 理論篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  4. 转职成为TypeScript程序员的参考手册

    写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...

  5. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  6. JS魔法堂:不完全国际化&本地化手册 之 实战篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  7. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  8. linux命令在线手册

    下面几个网址有一些 Linux命令的在线手册,而且还是中文的,还可以搜索.非常方便 Linux命令手册 Linux命令大全 Linux中文man在线手册 每日一linux命令

  9. Mysql完全手册(笔记二,使用数据与性能优化)

    一.使用数据 1.使用变量 MySQL也可以让我们以用户自定义的变量来存储select查询的结果,以便在将来select查询中使用.它们只会在客户会话期间存在,但是它们提供一个方便有效的方法来连接查询 ...

  10. html javascript css3 php3.2.3离线手册

    各位新年快乐! 愿大家"愿有前程可奔赴,也有岁月可回头"! 发现个离线手册很全的网站,分享大家,也mark自用. http://www.shouce.ren/ 手册网

随机推荐

  1. Solon-Boot 与 SpringBoot 的概念不同

    平常我们是拿 Solon 生态与 SpringBoot 生态作比较.而非 Solon-Boot(仅是功能模块) 与 SpringBoot 生态,但这两名字太容易让人误解了. Solon-Boot So ...

  2. Kali Linux 更新 一条命令搞定

    Kali Linux 更新 一条命令搞定 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dis ...

  3. "山海经“ 讲解----线段树

    "山海经"--线段树 讲解 1.题面: http://cogs.pro/cogs/problem/problem.php?pid=775 2.题目大意及分析: i:大概就是说给了你 ...

  4. 运营商业务系统基于 KubeSphere 的容器化实践

    本篇文章是 KubeSphere 2020 年度 Meetup 上讲师宋磊分享内容整理而成. 大家好,我是宋磊,在运营商的一个科技子公司任职,主要做大数据业务.我主要负责公司的 IaaS 层和 Paa ...

  5. Python 潮流周刊#74:创下吉尼斯世界记录的 Python 编程课(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  6. 一文彻底熟练掌握并使用Java的NIO操作

    一.基本概念 Java NIO 是 Java 1.4 引入的,用于处理高速.高并发的 I/O 操作.与传统的阻塞 I/O 不同,NIO 支持非阻塞 I/O 和选择器,可以更高效地管理多个通道. 二.核 ...

  7. 【2024.9.30】NOIP2024 赛前集训-刷题训练(4)

    [2024.9.30]NOIP2024 赛前集训-刷题训练(4) Problem - 2000D - Codeforces 给一串数和一串LR字符,L 可以向右连接 R, 覆盖部分的LR不能再使用,但 ...

  8. 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!

    前言 程序员的终极追求是什么?当系统流量大增,用户体验却丝滑依旧?没错!然而,在大量文件传输.数据传递的场景中,传统的"数据搬运"却拖慢了性能.为了解决这一痛点,Linux 推出了 ...

  9. 不容忽视的PCB测试点,关键时刻可以避免批量事故哦!

    ​  PCB测试点是啥子?请看下图: ​ 如果你曾经用过NOKIA手机,每次你打开后盖换电池的时候,每次看到的那两排圆形的点--就是PCB测试点,or you can call it Test Poi ...

  10. 记录个Java/Groovy的小问题:空字符串调用split函数返回非空数组

    问题复现 最近写了一个groovy替换程序增量流水线脚本(会Java也能看懂),示意脚本如下: //获取文件列表方法 def listFiles(folder) { def output = sh(s ...