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]]࿰…...
5 长度和距离计算模块(length.rs)
这段代码定义了一个泛型结构体 Length<T, Unit>,用于表示一维长度,其中 T 表示长度的数值类型,而 Unit 是一个编译时检查单位一致性的占位符类型,不会用于运行时表示长度的值。这个设计允许开发者在编译阶段确保不同单位之间…...
ollama改模型的存盘目录解决下载大模型报c:盘空间不足的问题
使用Ollama和Open WebUI快速玩转大模型:简单快捷的尝试各种llm大模型,比如DeepSeek r1,非常简单方便,参见:使用Ollama和Open WebUI快速玩转大模型:简单快捷的尝试各种llm大模型,比如DeepSeek r1…...
OSCP:常见文件传输方法
在渗透测试过程中,文件传输是一个关键环节,涉及不同的协议和工具,本文整理了 Linux 和 Windows 系统下常见的文件传输方法,并提供相应的命令示例。 通用文件传输方式 Base64 编码传输 Base64 可用于跨平台传输文件,…...
B站吴恩达机器学习笔记
机器学习视频地址: 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 机器学习分类: 1. 有监督学习(Supervised Learning) 在有监督学习中,训练数据包含了输入特征和正确的输出标签,模型通过这些带有标签的…...
Java 性能优化与新特性
Java学习资料 Java学习资料 Java学习资料 一、引言 Java 作为一门广泛应用于企业级开发、移动应用、大数据等多个领域的编程语言,其性能和特性一直是开发者关注的重点。随着软件系统的规模和复杂度不断增加,对 Java 程序性能的要求也越来越高。同时&a…...
【计算机网络】host文件
host文件的主要功能: 域名解析 本地映射:host文件的主要功能是将**域名映射到相应的 IP 地址**。当计算机需要访问一个网站或服务时,它会首先在 host文件中查找该域名对应的 IP 地址。如果在 host文件中找到了匹配的域名和 IP 地址映射&…...
【C语言】在Windows上为可执行文件.exe添加自定义图标
本文详细介绍了在 Windows 环境下,如何为使用 GCC 编译器编译的 C程序 添加自定义图标,从而生成带有图标的 .exe 可执行文件。通过本文的指导,读者可以了解到所需的条件以及具体的操作步骤,使生成的程序更具专业性和个性化。 目录 1. 准备条件2. 具体步骤步骤 1: 准备资源文…...
爬虫基础(五)爬虫基本原理
目录 一、爬虫是什么 二、爬虫过程 (1)获取网页 (2)提取信息 (3)保存数据 三、爬虫可爬的数据 四、爬虫问题 一、爬虫是什么 互联网,后面有个网字,我们可以把它看成一张蜘蛛网…...
力扣【1049. 最后一块石头的重量 II】Java题解(背包问题)
让石头分成重量相同的两堆(尽可能相同),相撞之后剩下的石头就是最小的。进一步转化成容量为重量总喝一半的背包最多可以装多少质量的石头。这样就转化成了背包问题。 最后求结果时,我们所最多能装的时dp[target],那另一…...
FFmpeg rtmp推流直播
文章目录 rtmp协议RTMP协议组成RTMP的握手过程RTMP流的创建RTMP消息格式Chunking(Message 分块) rtmp服务器搭建Nginx服务器配置Nginx服务器 librtmp库编译推流 rtmp协议 RTMP(Real Time Messaging Protocol)是由Adobe公司基于Flash Player播放器对应的…...
WordPress Icegram Express插件Sql注入漏洞复现(CVE-2024-2876)(附脚本)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...
重构字符串(767)
767. 重构字符串 - 力扣(LeetCode) 解法: class Solution { public:string reorganizeString(string s){string res;//因为1 < s.length < 500 , 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流行趋势
项目名称:Janus 项目地址url:https://github.com/deepseek-ai/Janus项目语言:Python历史star数:9350今日star数:5969项目维护者:learningpro, hills-code, TheOneTrueGuy, mowentian, soloice项目简介&…...
yolov11、yolov8部署的7种方法(yolov11、yolov8部署rknn的7种方法),一天一种部署方法,7天入门部署
由于涉及量化、部署两个领域,本博文难免有不对之处,欢迎指正。 本博客对 yolov11(yolov8)尝试了7种不同的部署方法,在最基础的模型上一步一步的去掉解码相关的操作(移到后处理种进行)࿰…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
