当前位置: 首页 > news >正文

rsync安装与使用-linux015

使用 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 来同步删除不再存在的文件。

相关文章:

rsync安装与使用-linux015

使用 rsync 可以非常高效地将文件或目录从一个服务器传输到另一个服务器。 能力: 支持 64 位文件、64 位 inode、64 位时间戳、64 位长整型支持套接字对、符号链接、符号链接时间、硬链接、硬链接特殊文件、硬链接符号链接支持 IPv6、访问时间(atimes&…...

CAP 定理的 P 是什么

分布式系统 CAP 定理 P 代表什么含义 作者之前在看 CAP 定理时抱有很大的疑惑,CAP 定理的定义是指在分布式系统中三者只能满足其二,也就是存在分布式 CA 系统的。作者在网络上查阅了很多关于 CAP 文章,虽然这些文章对于 P 的解释五花八门&am…...

【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖

uv包管理器是跨平台的 参考sudo apt-get update sudo apt-get install -y build-essential我的开发环境是ubuntu24.04 (base) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/08_multi-agent-system# uv venv 找不到命令 “uv”,但可以通过以下软件...

JavaScript原型链与继承:优化与扩展的深度探索

在 JavaScript 的世界里,万物皆对象,而每个对象都有一个与之关联的原型对象,这就构成了原型链的基础。原型链,简单来说,是一个由对象的原型相互连接形成的链式结构 。每个对象都有一个内部属性[[Prototype]]&#xff0…...

5 长度和距离计算模块(length.rs)

这段代码定义了一个泛型结构体 Length<T, Unit>&#xff0c;用于表示一维长度&#xff0c;其中 T 表示长度的数值类型&#xff0c;而 Unit 是一个编译时检查单位一致性的占位符类型&#xff0c;不会用于运行时表示长度的值。这个设计允许开发者在编译阶段确保不同单位之间…...

ollama改模型的存盘目录解决下载大模型报c:盘空间不足的问题

使用Ollama和Open WebUI快速玩转大模型&#xff1a;简单快捷的尝试各种llm大模型&#xff0c;比如DeepSeek r1&#xff0c;非常简单方便&#xff0c;参见&#xff1a;使用Ollama和Open WebUI快速玩转大模型&#xff1a;简单快捷的尝试各种llm大模型&#xff0c;比如DeepSeek r1…...

OSCP:常见文件传输方法

在渗透测试过程中&#xff0c;文件传输是一个关键环节&#xff0c;涉及不同的协议和工具&#xff0c;本文整理了 Linux 和 Windows 系统下常见的文件传输方法&#xff0c;并提供相应的命令示例。 通用文件传输方式 Base64 编码传输 Base64 可用于跨平台传输文件&#xff0c;…...

B站吴恩达机器学习笔记

机器学习视频地址&#xff1a; 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 机器学习分类&#xff1a; 1. 有监督学习&#xff08;Supervised Learning&#xff09; 在有监督学习中&#xff0c;训练数据包含了输入特征和正确的输出标签&#xff0c;模型通过这些带有标签的…...

Java 性能优化与新特性

Java学习资料 Java学习资料 Java学习资料 一、引言 Java 作为一门广泛应用于企业级开发、移动应用、大数据等多个领域的编程语言&#xff0c;其性能和特性一直是开发者关注的重点。随着软件系统的规模和复杂度不断增加&#xff0c;对 Java 程序性能的要求也越来越高。同时&a…...

【计算机网络】host文件

host文件的主要功能&#xff1a; 域名解析 本地映射&#xff1a;host文件的主要功能是将**域名映射到相应的 IP 地址**。当计算机需要访问一个网站或服务时&#xff0c;它会首先在 host文件中查找该域名对应的 IP 地址。如果在 host文件中找到了匹配的域名和 IP 地址映射&…...

【C语言】在Windows上为可执行文件.exe添加自定义图标

本文详细介绍了在 Windows 环境下,如何为使用 GCC 编译器编译的 C程序 添加自定义图标,从而生成带有图标的 .exe 可执行文件。通过本文的指导,读者可以了解到所需的条件以及具体的操作步骤,使生成的程序更具专业性和个性化。 目录 1. 准备条件2. 具体步骤步骤 1: 准备资源文…...

爬虫基础(五)爬虫基本原理

目录 一、爬虫是什么 二、爬虫过程 &#xff08;1&#xff09;获取网页 &#xff08;2&#xff09;提取信息 &#xff08;3&#xff09;保存数据 三、爬虫可爬的数据 四、爬虫问题 一、爬虫是什么 互联网&#xff0c;后面有个网字&#xff0c;我们可以把它看成一张蜘蛛网…...

力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)

让石头分成重量相同的两堆&#xff08;尽可能相同&#xff09;&#xff0c;相撞之后剩下的石头就是最小的。进一步转化成容量为重量总喝一半的背包最多可以装多少质量的石头。这样就转化成了背包问题。 最后求结果时&#xff0c;我们所最多能装的时dp[target]&#xff0c;那另一…...

FFmpeg rtmp推流直播

文章目录 rtmp协议RTMP协议组成RTMP的握手过程RTMP流的创建RTMP消息格式Chunking(Message 分块) rtmp服务器搭建Nginx服务器配置Nginx服务器 librtmp库编译推流 rtmp协议 RTMP&#xff08;Real Time Messaging Protocol&#xff09;是由Adobe公司基于Flash Player播放器对应的…...

WordPress Icegram Express插件Sql注入漏洞复现(CVE-2024-2876)(附脚本)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

重构字符串(767)

767. 重构字符串 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:string reorganizeString(string s){string res;//因为1 < s.length < 500 &#xff0c; uint64_t 类型足够uint16_t n s.size();if (n 0) {return res;}unordere…...

IO进程线程复习

IO进程线程复习...

深入理解Linux内核的虚拟地址到物理地址转换机制及缓存优化

在现代计算机系统中,虚拟地址到物理地址的转换是操作系统内存管理的重要组成部分。特别是在基于x86_64架构的Linux系统上,这一转换过程及其相关的缓存机制对系统性能和稳定性至关重要。本文将深入探讨Debian 10上运行Linux 4.19内核时,这些机制的实现细节,特别是页表管理、…...

2025年01月29日Github流行趋势

项目名称&#xff1a;Janus 项目地址url&#xff1a;https://github.com/deepseek-ai/Janus项目语言&#xff1a;Python历史star数&#xff1a;9350今日star数&#xff1a;5969项目维护者&#xff1a;learningpro, hills-code, TheOneTrueGuy, mowentian, soloice项目简介&…...

yolov11、yolov8部署的7种方法(yolov11、yolov8部署rknn的7种方法),一天一种部署方法,7天入门部署

由于涉及量化、部署两个领域&#xff0c;本博文难免有不对之处&#xff0c;欢迎指正。 本博客对 yolov11&#xff08;yolov8&#xff09;尝试了7种不同的部署方法&#xff0c;在最基础的模型上一步一步的去掉解码相关的操作&#xff08;移到后处理种进行&#xff09;&#xff0…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...