rsync安装与使用-linux015

news2025/1/31 17:54:21

使用 rsync 可以非常高效地将文件或目录从一个服务器传输到另一个服务器。

能力:

  • 支持 64 位文件、64 位 inode、64 位时间戳、64 位长整型
  • 支持套接字对、符号链接、符号链接时间、硬链接、硬链接特殊文件、硬链接符号链接
  • 支持 IPv6、访问时间(atimes)、批处理文件、就地更新、附加操作、ACLs、扩展属性、可选的隔离参数、字符集转换(iconv)、预分配
  • 支持停止操作、无创建时间(crtimes)

优化:

  • SIMD 优化、无汇编优化、OpenSSL 加密、无 MD5 汇编优化

校验和算法:

  • xxh128、xxh3、xxh64 (xxhash)、MD5、MD4、SHA1、无校验

压缩算法:

  • zstd、lz4、zlibx、zlib、无压缩

守护进程认证:

  • sha512、sha256、sha1、md5、md4

rsync 完全不提供任何保证。这是自由软件,您可以在某些条件下重新分发它。详情请参见 GNU 通用公共许可证。

rsync 是一个文件传输程序,能够通过快速的差异化算法高效地进行远程更新。

01 安装
apt-get install rsync
02 使用
使用方法:
rsync [选项]... 源 [源]... 目标
或者 rsync [选项]... 源 [源]... [用户@]主机:目标
或者 rsync [选项]... 源 [源]... [用户@]主机::目标
或者 rsync [选项]... 源 [源]... rsync://[用户@]主机[:端口]/目标
或者 rsync [选项]... [用户@]主机:源 [目标]
或者 rsync [选项]... [用户@]主机::源 [目标]
或者 rsync [选项]... rsync://[用户@]主机[:端口]/源 [目标]


### 选项:
- **`--verbose` 或 `-v`**:增加详细输出
- **`--info=FLAGS`**:细化信息输出的详细程度
- **`--debug=FLAGS`**:细化调试输出的详细程度
- **`--stderr=e|a|c`**:更改标准错误输出模式(默认:错误)
- **`--quiet` 或 `-q`**:抑制非错误消息
- **`--no-motd`**:抑制守护进程模式的 MOTD(消息)
- **`--checksum` 或 `-c`**:基于校验和跳过文件,而不是根据修改时间和大小
- **`--archive` 或 `-a`**:归档模式(即 `-rlptgoD`,不包括 `-A,-X,-U,-N,-H`)
- **`--no-OPTION`**:关闭隐式选项(例如,`--no-D`)
- **`--recursive` 或 `-r`**:递归进入目录
- **`--relative` 或 `-R`**:使用相对路径名称
- **`--no-implied-dirs`**:不与 `--relative` 一起发送隐式目录
- **`--backup` 或 `-b`**:制作备份(参见 `--suffix` 和 `--backup-dir`)
- **`--backup-dir=DIR`**:将备份制作到 `DIR` 指定的目录结构中
- **`--suffix=SUFFIX`**:备份的后缀(默认是 `~`,不使用 `--backup-dir`)
- **`--update` 或 `-u`**:跳过接收端已经更新的文件
- **`--inplace`**:就地更新目标文件
- **`--append`**:将数据附加到较短的文件
- **`--append-verify`**:附加并验证旧数据的文件校验和
- **`--dirs` 或 `-d`**:传输目录时不递归
- **`--old-dirs` 或 `--old-d`**:在与旧版 `rsync` 通信时,`--dirs` 的表现
- **`--mkpath`**:创建目标路径中缺少的组件
- **`--links` 或 `-l`**:保持符号链接为符号链接
- **`--copy-links` 或 `-L`**:将符号链接转换为它们指向的文件/目录
- **`--copy-unsafe-links`**:只转换“危险”的符号链接
- **`--safe-links`**:忽略指向树外的符号链接
- **`--munge-links`**:修改符号链接使其安全且不可用
- **`--copy-dirlinks` 或 `-k`**:将符号链接的目录转换为引用的目录
- **`--keep-dirlinks` 或 `-K`**:将接收端的符号链接目录视为目录
- **`--hard-links` 或 `-H`**:保持硬链接
- **`--perms` 或 `-p`**:保持权限
- **`--executability` 或 `-E`**:保持可执行权限
- **`--chmod=CHMOD`**:修改文件和/或目录的权限
- **`--acls` 或 `-A`**:保持 ACL(这会自动启用 `--perms`)
- **`--xattrs` 或 `-X`**:保持扩展属性
- **`--owner` 或 `-o`**:保持文件所有者(仅限超级用户)
- **`--group` 或 `-g`**:保持文件组
- **`--devices`**:保持设备文件(仅限超级用户)
- **`--copy-devices`**:将设备内容作为普通文件复制
- **`--write-devices`**:将数据写入设备作为文件(启用 `--inplace`)
- **`--specials`**:保持特殊文件
- **`-D`**:与 `--devices --specials` 相同
- **`--times` 或 `-t`**:保持修改时间
- **`--atimes` 或 `-U`**:保持访问时间
- **`--open-noatime`**:避免更改打开文件的访问时间
- **`--crtimes` 或 `-N`**:保持创建时间
- **`--omit-dir-times` 或 `-O`**:在 `--times` 时省略目录
- **`--omit-link-times` 或 `-J`**:在 `--times` 时省略符号链接
- **`--super`**:接收端尝试执行超级用户活动
- **`--fake-super`**:使用扩展属性存储/恢复特权属性
- **`--sparse` 或 `-S`**:将零序列转换为稀疏块
- **`--preallocate`**:在写入文件前预分配目标文件
- **`--dry-run` 或 `-n`**:进行试运行,不做任何更改
- **`--whole-file` 或 `-W`**:以整体文件方式复制文件(不使用差异传输算法)
- **`--checksum-choice=STR`**:选择校验和算法
- **`--one-file-system` 或 `-x`**:不要跨越文件系统边界
- **`--block-size=SIZE` 或 `-B`**:强制使用固定的校验块大小
- **`--rsh=COMMAND` 或 `-e`**:指定要使用的远程 shell
- **`--rsync-path=PROGRAM`**:指定远程机器上运行的 `rsync` 程序

使用 : 时通过远程 shell 连接,使用 ::rsync:// 连接时通过 rsync 守护进程,且要求源或目标以模块名称开头。


常用选项:
  • --verbose-v:增加详细输出
  • --quiet-q:抑制非错误信息
  • --checksum-c:基于校验和而非修改时间和文件大小来跳过文件
  • --archive-a:归档模式,包括 -rlptgoD(不包括 -A,-X,-U,-N,-H
  • --recursive-r:递归进入目录
  • --links-l:保持符号链接为符号链接
  • --copy-links-L:将符号链接转换为引用文件/目录
  • --delete:从目标目录删除多余的文件
  • --dry-run-n:执行试运行,不做任何更改
  • --progress:在传输过程中显示进度
  • --compress-z:在传输过程中压缩文件数据
  • --exclude:排除匹配特定模式的文件
  • --include:不要排除匹配特定模式的文件
  • --bwlimit:限制套接字 I/O 带宽
  • --version-V:打印版本信息并退出
  • --help-h:显示帮助信息

常用的守护进程相关选项:
  • --daemon:启动 rsync 守护进程
  • --password-file:从文件中读取守护进程的密码

错误代码和调试:

如果遇到问题或错误,rsync 会提供错误代码和详细的调试信息,可以通过 --debug 参数获取更详细的调试信息。

如果要查看完整的文档,可以使用 rsync(1)rsyncd.conf(5) 手册,或访问 rsync 官方网站。

03 常用案例

基本命令格式:

rsync -avz /path/to/local/file_or_directory username@remote_host:/path/to/remote/directory

命令选项解释:

  • -a:归档模式,等同于 -rlptgoD,表示递归复制并保留文件属性(如权限、时间戳等)。
  • -v:启用详细输出,显示传输过程。
  • -z:启用压缩传输,适合大文件,减少传输的数据量。
  • username:远程主机的用户名。
  • remote_host:远程主机的IP地址或域名。
  • /path/to/remote/directory:远程服务器上的目标目录。
例子 1:将本地文件传输到远程服务器
rsync -avz /home/user/file.txt username@remote_server:/home/username/target_directory
例子 2:将本地目录传输到远程服务器
rsync -avz /home/user/myfolder/ username@remote_server:/home/username/target_directory/

注意: / 在目录路径末尾的差异。末尾带 / 会将目录内容传输到目标目录中,不带 / 会传输整个目录。

例子 3:从远程服务器同步到本地服务器
rsync -avz username@remote_server:/home/username/remote_folder /local/destination_folder
常用
rsync -avzP -e "ssh -p 17226" /mnt/data/home/XXXX h4tk3rwu5w84thvx.XXX:/mnt/data/home/

#/决定是整个目录,还是目录内部

-a(归档模式):

归档模式用于保留文件的符号链接、权限、时间戳、组和所有者等属性,相当于启用 -rlptgoD 选项。
-r:递归进入目录。
-l:保留符号链接。
-p:保留文件权限。
-t:保留修改时间。
-g:保留文件所属组。
-o:保留文件所有者。
-D:保留设备文件。
-v(详细模式):

增加命令执行时的输出,显示哪些文件正在传输。
-z(压缩):

在传输过程中压缩数据,以减少带宽使用。
-P:

这个选项等同于 --partial --progress:
--partial:保持已传输的部分文件,即使传输中断,也不会丢失已传输的部分。
--progress:显示文件传输的进度。
-e "ssh -p 17226":

使用 ssh 连接远程主机,并指定端口 17226。这是用来加密数据传输的协议,-p 选项指定 SSH 连接的端口。
/mnt/data/home/XXXX:

本地源目录:rsync 将从这个路径开始同步文件。请注意,路径末尾有一个斜杠 /,这表示将同步目录内的所有内容。
h4tk3rwu5w84thvx.XXX:/mnt/data/home/:

远程目标目录:数据将被传输到远程主机 h4tk3rwu5w84thvx.XXX 上的 /mnt/data/home/ 目录。
h4tk3rwu5w84thvx.XXX 是远程主机的地址,:/mnt/data/home/ 是目标路径。

常用额外选项:

  • -e ssh:指定使用 SSH 作为传输协议(默认就是 SSH,但可以明确指定)。
  • --progress:显示传输进度。
  • --delete:删除目标目录中不再源目录中的文件。
例子 4:显示进度
rsync -avz --progress /home/user/myfolder/ username@remote_server:/home/username/target_directory/
例子 5:删除目标文件夹中源目录已删除的文件
rsync -avz --delete /home/user/myfolder/ username@remote_server:/home/username/target_directory/

注意:

  • 使用 rsync 进行数据传输时,最好通过 SSH 进行连接。
  • 通过添加选项如 -v-z--progress 等可以让你更好地控制和监控传输过程。
  • 根据具体需要选择是否使用 --delete 来同步删除不再存在的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2288015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Formality:时序变换(二)(不可读寄存器移除)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、…

前端实战:小程序搭建商品购物全流程

目录 项目概述 开发环境搭建 微信开发者工具下载与安装 项目创建流程 项目目录结构及各文件作用 商品展示页面开发 页面布局(WXML 与 WXSS) 数据获取与绑定(JavaScript) 加入购物车功能实现 购物车功能开发 购物车页面布…

Python中的函数(下)

函数返回值 返回单个值 函数可以通过 return 语句返回一个值。一旦执行到 return 语句,函数就会停止执行,并将指定的值返回给调用者。例如: 返回多个值 实际上,Python函数只能返回一个值,但可以通过返回一个元组来模…

探索AI(chatgpt、文心一言、kimi等)提示词的奥秘

大家好,我是老六哥,我正在共享使用AI提高工作效率的技巧。欢迎关注我,共同提高使用AI的技能,让AI成功你的个人助理。 "AI提示词究竟是什么?" 这是许多初学者在接触AI时的共同疑问。 "我阅读了大量关于…

Linux运维之Linux的安装和配置

目录 Linux的基本概念: 1.为什么要使用Linux? 2.什么是Linux? Linux的安装和配置: 1.下载Linux的虚拟机和镜像文件: 1.1下载虚拟机 1.2下载镜像文件 2.在虚拟机或者物理机中安装Linux操作系统 3.配置虚拟机的…

【深度分析】微软全球裁员计划不影响印度地区,将继续增加当地就业机会

当微软的裁员刀锋掠过全球办公室时,班加罗尔的键盘声却愈发密集——这场资本迁徙背后,藏着数字殖民时代最锋利的生存法则。 表面是跨国公司的区域战略调整,实则是全球人才市场的地壳运动。微软一边在硅谷裁撤年薪20万美金的高级工程师&#x…

联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署

直接上手搓了: conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…

【MQ】探索 Kafka

高性能 消息的顺序性、顺序写磁盘 零拷贝 RocketMQ内部主要是使用基于mmap实现的零拷贝,用来读写文件 减少cpu的拷贝次数和上下文切换次数,实现文件的高效读写操作 Kafka 零拷贝 Kafka 使用到了 mmap 和 sendfile 的方式来实现零拷贝。分别对应 Jav…

指针(C语言)从0到1掌握指针,为后续学习c++打下基础

目录 一,指针 二,内存地址和指针 1,什么是内存地址 2,指针在不同系统下所占内存 三,指针的声明和初始化以及类型 1,指针的声明 2,指针 的初始化 1, 初始化方式优点及适用场景 4,指针的声明初始化类型…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…

AI DeepSeek-R1 Windos 10 环境搭建

1、安装: 下载 Python |Python.org CUDA Drivers for MAC Archive | NVIDIA pip 和virtualenv Download Ollama on Windows 如下图 2、下载模型 deepseek-r1 ollama run deepseek-r1 或者可以ollama run deepseek-r1:8b 或 3、安装一个可视化对话Chatbox 下载 …

【懒删除堆】力扣2349. 设计数字容器系统

设计一个数字容器系统,可以实现以下功能: 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中给定数字的最小下标。 请你实现一个 NumberContainers 类: NumberContainers() 初始化数字容器系统。 void change(int index, int numb…

【Block总结】OutlookAttention注意力,捕捉细节和局部特征|即插即用

论文信息 标题: VOLO: Vision Outlooker for Visual Recognition作者: Li Yuan, Qibin Hou, Zihang Jiang, Jiashi Feng, Shuicheng Yan代码链接: https://github.com/sail-sg/volo论文链接: https://arxiv.org/pdf/2106.13112 创新点 前景注意力机制: VOLO引入了一种称为“…

有效运作神经网络

内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习所用。 文章目录 训练集、验证集、测试集偏差、方差正则化正则化参数为什么正则化可以减少过拟合Dropout正则化Inverted Dropout其他的正则化方法数据增广Early stopping 归一化梯度消失与梯度爆…

Vue 组件开发:构建高效可复用的前端界面要素

1 引言 在现代 Web 开发中,构建高效且可复用的前端界面要素是提升开发效率和用户体验的关键。Vue.js 作为一种轻量级且功能强大的前端框架,提供了丰富的工具和机制,帮助开发者快速构建高质量的应用程序。通过合理设计和封装 Vue 组件,我们可以实现组件的高效复用,提高开发…

Spring Boot + Facade Pattern : 通过统一接口简化多模块业务

文章目录 Pre概述在编程中,外观模式是如何工作的?外观设计模式 UML 类图外观类和子系统的关系优点案例外观模式在复杂业务中的应用实战运用1. 项目搭建与基础配置2. 构建子系统组件航班服务酒店服务旅游套餐服务 3. 创建外观类4. 在 Controller 中使用外…

OpenAI Operator:AI Agent 大战的号角,从 “工具” 到 “助手” 的飞跃

想尝试不同的 AI 模型?不必到处寻找!chatTools 为您集成了 o1、GPT4o、Claude 和 Gemini 等多种选择,一个平台解决您的所有 AI 需求。现在就来体验吧! 各位 AI 爱好者们,今天我们来聊聊 OpenAI 的最新力作——Operator…

AI大模型开发原理篇-9:GPT模型的概念和基本结构

基本概念 生成式预训练模型 GPT(Generative Pre-trained Transformer)模型 是由 OpenAI 开发的基于 Transformer 架构的自然语言处理(NLP)模型,专门用于文本生成任务。它的设计理念在于通过大规模的预训练来学习语言模…

Java Swing 基础组件详解 [论文投稿-第四届智能系统、通信与计算机网络]

大会官网:www.icisccn.net Java Swing 是一个功能强大的 GUI 工具包,提供了丰富的组件库用于构建跨平台的桌面应用程序。本文将详细讲解 Swing 的基础组件,包括其作用、使用方法以及示例代码,帮助你快速掌握 Swing 的核心知识。 一…

vscode+WSL2(ubuntu22.04)+pytorch+conda+cuda+cudnn安装系列

最近在家过年闲的没事,于是研究起深度学习开发工具链的配置和安装,之前欲与天公试比高,尝试在win上用vscodecuda11.6vs2019的cl编译器搭建cuda c编程环境,最后惨败,沦为笑柄,痛定思痛,这次直接和…