当前位置: 首页 > 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…...

【ArcGIS遇上Python】批量提取多波段影像至单个波段

本案例基于ArcGIS python,将landsat影像的7个波段影像数据,批量提取至单个波段。 相关阅读:【ArcGIS微课1000例】0141:提取多波段影像中的单个波段 文章目录 一、数据准备二、效果比对二、python批处理1. 编写python代码2. 运行代码一、数据准备 实验数据及完整的python位…...

Node.js MySQL:深度解析与最佳实践

Node.js MySQL:深度解析与最佳实践 引言 Node.js作为一种流行的JavaScript运行时环境,以其轻量级、高性能和事件驱动模型受到开发者的青睐。MySQL则是一款功能强大的关系型数据库管理系统,广泛应用于各种规模的应用程序中。本文将深入探讨Node.js与MySQL的集成,分析其优势…...

wordpress外贸独立站常用询盘软件

LiveChat LiveChat是一家提供实时聊天软件的公司&#xff0c;帮助企业通过其平台与客户进行即时通讯&#xff0c;提高客户满意度和忠诚度。他们的产品允许企业在网站、应用程序或电子邮件等多个渠道与客户互动&#xff0c;从而提升客户体验并促进销售增长。 LiveChat的软件特…...

Kotlin 委托详解

Kotlin 委托详解 引言 Kotlin 作为一种现代化的编程语言&#xff0c;在 Android 开发等领域得到了广泛的应用。在 Kotlin 中&#xff0c;委托&#xff08;Delegation&#xff09;是一种强大的特性&#xff0c;它可以让我们以更简洁的方式实现代码的复用和扩展。本文将详细解析…...

Cursor 简介:AI 如何改变编程体验

在软件开发领域&#xff0c;效率和质量始终是开发者们追求的目标。随着人工智能技术的飞速发展&#xff0c;编程工具也在不断进化&#xff0c;Cursor 便是这一趋势下的产物。它不仅仅是一个代码编辑器&#xff0c;更是一个集成了 AI 能力的智能编程助手&#xff0c;旨在通过 AI…...

Fiddler(一) - Fiddler简介_fiddler软件

文章目录 一、为什么选择Fiddler作为抓包工具? 二、什么是Fiddler?三、Fiddler使用界面简介四、延伸阅读 一、为什么选择Fiddler作为抓包工具? 抓包工具有很多&#xff0c;小到最常用的web调试工具firebug&#xff0c;大到通用性强大的抓包工具wireshark。为什么使用fid…...

实测数据处理(Wk算法处理)——SAR成像算法系列(十二)

系列文章目录 《SAR学习笔记-SAR成像算法系列&#xff08;一&#xff09;》 《wk算法-SAR成像算法系列&#xff08;五&#xff09;》 文章目录 前言 一、算法流程 1.1、回波信号生成 2.2 Stolt插值 2.3 距离脉冲压缩 2.4 方位脉冲压缩 2.5 SAR成像 二、仿真实验 2.1、仿真参数…...

P1775 石子合并(弱化版)

P1775 石子合并&#xff08;弱化版&#xff09; 题目描述 设有 N ( N ≤ 300 ) N(N \le 300) N(N≤300) 堆石子排成一排&#xff0c;其编号为 1 , 2 , 3 , ⋯ , N 1,2,3,\cdots,N 1,2,3,⋯,N。每堆石子有一定的质量 m i ( m i ≤ 1000 ) m_i\ (m_i \le 1000) mi​ (mi​≤…...

一文回顾讲解Java中的集合框架

这篇文章以提问的方式总结回顾下Java中常见的集合框架 Java中的集合框架可以分为两条大的支线&#xff1a;Collection和Map Collection,主要由List、Set、Queue组成&#xff1b; List是有序&#xff0c;可重复的集合&#xff0c;典型代表有封装了动态数组的ArrayList和封装了链…...

多模态论文笔记——NaViT

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细解读多模态论文NaViT&#xff08;Native Resolution ViT&#xff09;&#xff0c;将来自不同图像的多个patches打包成一个单一序列——称为Patch n’ Pack—…...