rsync基本命令和用法

news/2025/10/7 13:23:09/文章来源:https://www.cnblogs.com/shujuyr/p/19128407

rsync基本命令和用法

rsync(remote sync)是一款开源的文件同步工具,以增量传输为核心优势 —— 仅传输源和目标之间的差异部分,而非完整文件,大幅节省带宽和时间。它支持本地文件同步、远程服务器间同步(通过 SSH 或 rsync 守护进程),广泛用于数据备份、网站部署、服务器镜像等场景。本文将从基础命令到高级用法,全面讲解 rsync 的使用方法。

一、rsync 安装与核心优势

1. 安装 rsync

rsync 通常预安装在 Linux 系统中,若未安装,可通过包管理器安装:
# Debian/Ubuntu 系统
sudo apt-get install rsync# CentOS/RHEL 系统
sudo yum install rsync# macOS 系统(需先安装 Homebrew)
brew install rsync
 

2. 核心优势

  • 增量传输:首次同步完整文件,后续仅传输修改的部分(基于文件大小和修改时间,或校验和);
  • 多协议支持:支持本地同步、SSH 远程同步(user@host:path)、rsync 守护进程(rsync://user@host/path);
  • 灵活的文件处理:可保留文件权限、时间戳、符号链接等元数据,支持删除目标端冗余文件;
  • 带宽控制:可限制传输速率,避免占用过多网络资源。

二、rsync 基本命令格式

rsync 的核心命令格式为:
rsync [选项] 源路径 目标路径
 
  • 源路径 / 目标路径:可以是本地路径(如 /home/user/file.txt)、远程路径(如 user@192.168.1.100:/data/backup);
  • 选项:控制同步行为(如是否递归、是否压缩、是否保留权限等),是 rsync 功能的核心。

三、常用选项详解

rsync 的选项众多,以下是最常用的核心选项(建议结合示例理解):
选项作用说明典型场景
-a 归档模式(archive),等价于 -rlptgoD,递归同步并保留几乎所有元数据(权限、时间戳、符号链接等) 备份场景(需完整保留文件属性)
-v 详细输出(verbose),显示同步过程中的文件列表 查看同步进度和详情
-z 传输时压缩文件(compress),减少网络传输量 远程同步(尤其带宽有限时)
-h 以人类可读格式(human-readable)显示文件大小(如 K、M、G) 配合 -v 更直观查看大小
-P 等价于 --progress --partial:显示传输进度,且保留部分传输的文件(断点续传) 大文件传输(避免中断后重传)
--delete 删除目标路径中源路径没有的文件,使目标与源完全一致 镜像同步(如网站文件部署)
-n 模拟同步(dry run),仅显示会执行的操作,不实际同步 验证同步命令是否正确(防止误操作)
-r 递归同步目录(recursive),但不保留元数据(-a 已包含 -r 简单目录同步(无需保留属性)
-L 跟随符号链接(treat symlinks as files),将链接指向的文件同步,而非链接本身 需要同步链接指向的实际文件时
--exclude=PATTERN 排除符合 PATTERN 的文件 / 目录(如 --exclude=*.log 排除日志文件) 同步时过滤临时文件、日志等

四、实战用法示例

1. 本地文件 / 目录同步

(1)同步单个文件

# 将 source.txt 同步到 target.txt(若 target.txt 存在则覆盖,不存在则创建)
rsync -v /home/user/source.txt /tmp/target.txt
 

(2)同步目录(递归)

# 将 source_dir 目录同步到 target_dir(target_dir 不存在则创建,存在则将 source_dir 内容同步到其中)
rsync -av /home/user/source_dir /tmp/target_dir# 若需将 source_dir 本身(而非其内容)同步到 target_dir 下:
rsync -av /home/user/source_dir/ /tmp/target_dir/source_dir/
# 注意:源路径结尾加 / 表示同步目录内的内容,不加则同步目录本身
 

(3)同步并删除目标冗余文件

# 使 target_dir 完全等同于 source_dir(删除 target_dir 中 source_dir 没有的文件)
rsync -av --delete /home/user/source_dir /tmp/target_dir
 

2. 远程同步(基于 SSH 协议)

rsync 最常用的远程同步方式是通过 SSH 协议(默认使用 22 端口),格式为 user@remote_host:remote_path

(1)本地 → 远程(上传文件 / 目录)

# 将本地 source_dir 同步到远程服务器的 /data/backup 目录
rsync -avzP /home/user/source_dir user@192.168.1.100:/data/backup
# 说明:
# -z 压缩传输(适合远程)
# -P 显示进度并支持断点续传
 

(2)远程 → 本地(下载文件 / 目录)

# 将远程服务器的 /var/log 目录同步到本地的 /tmp/remote_logs
rsync -avzP user@192.168.1.100:/var/log /tmp/remote_logs
 

(3)指定 SSH 端口(非默认 22 端口)

若远程服务器 SSH 端口为 2222,需通过 -e 选项指定:
rsync -avzP -e "ssh -p 2222" /home/user/file.txt user@192.168.1.100:/tmp/
 

3. 基于 rsync 守护进程的同步(适合大规模部署)

对于频繁的跨服务器同步(如集群节点间同步),可配置 rsync 守护进程(daemon),通过 rsync:// 协议访问,无需每次输入 SSH 密码。

(1)简单示例(假设远程已配置 rsync 守护进程,共享模块为 backup

# 同步远程 rsync 服务的 backup 模块到本地
rsync -avzP rsync://user@192.168.1.100/backup /tmp/local_backup
 
注:rsync 守护进程配置较复杂(需修改 /etc/rsyncd.conf),适合专业运维场景,中小规模同步优先用 SSH 协议。

4. 实用场景:排除文件 / 目录同步

通过 --exclude 排除不需要同步的文件(支持通配符 *? 等):
# 同步 source_dir,但排除 .log 日志文件和 tmp 目录
rsync -av --exclude=*.log --exclude=tmp/ /home/user/source_dir /tmp/target_dir# 从文件读取排除规则(每行一个模式)
echo "*.log" > exclude.list
echo "tmp/" >> exclude.list
rsync -av --exclude-from=exclude.list /home/user/source_dir /tmp/target_dir
 

5. 模拟同步(防止误操作)

使用 -n 选项测试同步命令是否正确,避免意外删除或覆盖文件:
# 模拟将 source_dir 同步到 target_dir 并删除冗余文件(仅显示操作,不实际执行)
rsync -av --delete -n /home/user/source_dir /tmp/target_dir
# 确认输出无误后,去掉 -n 执行实际同步
 

五、常见问题与注意事项

1. 权限问题:同步后文件权限异常

  • 原因:默认 -a 选项会保留源文件权限,若目标目录权限不足(如远程服务器的 user 对 /data/backup 无写权限),会导致同步失败。
  • 解决:确保目标路径有写入权限,或使用 --chmod 选项强制修改同步后的权限(如 --chmod=ugo=rwX 赋予读写权限)。

2. 符号链接处理:同步后链接失效

  • 原因:默认情况下,rsync 会同步符号链接本身(作为链接文件),而非链接指向的实际文件。
  • 解决:添加 -L 选项跟随符号链接,同步实际文件:
    rsync -avL /home/user/link_file /tmp/target  # link_file 是符号链接
    
     

3. 大文件传输中断:需断点续传

  • 解决:使用 -P 选项(包含 --partial),中断后重新执行相同命令会从断点继续传输:
    rsync -avzP large_file.iso user@192.168.1.100:/data/
    
     

4. 带宽控制:避免占用过多网络资源

通过 --bwlimit=RATE 限制传输速率(单位:KB/s):
 
# 限制同步速率为 100KB/s
rsync -avzP --bwlimit=100 /home/user/big_dir user@192.168.1.100:/data/
 

六、总结

rsync 是文件同步的高效工具,核心价值在于增量传输和灵活的同步策略。掌握以下关键点即可应对大多数场景:
  • 基础命令:rsync [选项] 源 目标,其中 -a(归档)、-v(详细)、-z(压缩)、-P(进度 + 断点)是最常用组合;
  • 本地同步:用于备份到外部硬盘、同一服务器内目录同步;
  • 远程同步:通过 SSH 协议(user@host:path)实现服务器间文件上传 / 下载,适合网站部署、日志收集;
  • 高级技巧:--delete 保持目标与源一致,--exclude 过滤文件,-n 模拟同步防误操作。
无论是个人用户备份数据,还是企业级服务器镜像,rsync 都能以高效、可靠的方式完成文件同步任务,是系统管理员和开发者的必备工具。

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

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

相关文章

MTK oppoR9m Smart Phone flash Tool 提示 ERROR: STATUS_ABORT(0xC0010002)

前言全局说明注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:照片、聊…

详细介绍:ArcGIS Pro 3.4 二次开发 - 布局

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

哪家网站潍坊微信网站

icoding复习 1 链表 倒数查找 1. 已知一个带有表头结点的单链表, 假设链表只给出了头指针L。在不改变链表的前提下,请设计一个尽可能高效的算法, 查找链表中倒数第k个位置上的结点(k为正整数)。 函数原型为:int lnk_s…

XMind 2025 破解版下载及安装使用教程

XMind 2025 破解版下载及安装使用教程XMind 2025是一款风靡全球的头脑风暴和思维导图软件,为激发灵感和创意而生。 在国内使用广泛,拥有强大的功能,包括思维管理、商务演示、与办公软件协同工作等功能。XMind中文版…

Xmind Pro v24 最新破解版下载及激活教程

Xmind Pro v24 最新破解版下载及激活教程Xmind 应该是目前最好用的一款思维导图软件了。拥有优秀的用户体验,凭借简单易用,功能强大的特点,XMind在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软…

二分图最大匹配 Dinic/EK算法

方法 二分图转换成网络流模型;创建虚拟源点和汇点,将源点连上左边所有点,右边所有点连上汇点,容量皆为1。原来的每条边从左往右连边,容量也皆为1,最大流即最大匹配。code:洛谷P3386 dinic: #include<bits/std…

基本Dos指令

基本的Dos指令 打开命令提示符窗口的方式 正常打开方式Win+R 在输入框中输入cmd 回车(推荐)在开始菜单中搜索cmd 选中cmd双击打开在资源管理器地址栏右键输入cmd 回车任意文件目录下,shift+鼠标右键选择用powershel…

2025 年酒店一次性用品源头厂家最新推荐排行榜:含牙签牙线筷子套杯盖杯垫杯套外卖筷子印刷房卡套信封用品优质供应商盘点

在酒店行业竞争日益激烈的当下,一次性用品作为酒店服务品质的重要组成部分,其质量、配套能力及环保属性直接影响客人体验与酒店口碑。然而当前市场上,部分厂家存在质量把控不严、产品种类单一、供货效率低等问题,导…

2025餐饮一次性用品厂家最新推荐排行榜:聚焦资质口碑与产品实力,助力餐饮企业精准选品!

当前餐饮行业对一次性用品的需求持续增长,但市场乱象却让采购决策难度陡增。部分厂家缺乏合规资质,产品存在卫生不达标、材质安全隐患等问题,而餐饮企业既要满足消费者对环保与品质的高要求,又需兼顾定制化采购与成…

基于随机函数链接神经网络(RVFL)的锂电池健康状态(SOH)预测 - 指南

基于随机函数链接神经网络(RVFL)的锂电池健康状态(SOH)预测 - 指南2025-10-07 13:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: aut…

Google与华为

Google与华为A: 为何Google要跟华为作对?Q: 这是一个很好的问题。要理解“Google为何要与华为作对”,其实需要分清楚: 严格来说,不是Google主动要跟华为作对,而是因为美国政府的政策导致Google被迫与华为“切割”…

[线上故障case]vmstorage的tsid cache太小,导致 CPU 100%

[线上故障case]vmstorage的tsid cache太小,导致 CPU 100%作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客 zhihu Github 公众号:一本正经的瞎扯具体的故障细节请看:vm_slow_row_inserts_tot…

Docker 部署 PostgreSQL 数据库教程

本文详细介绍基于轩辕镜像的Docker部署PostgreSQL流程,涵盖镜像详情查看、登录验证/免登录/官方直连三种拉取方式、快速/挂载目录/docker-compose三种部署方式、结果验证步骤,及无法连接、配置持久化等常见问题的解决…

自己的网站怎么做app吗安徽建设相关网站

在国内&#xff0c;我认为Go语言会成为未来的主流&#xff0c;因为国内程序员号称码农&#xff0c;比较适合搬砖&#xff0c;而Rust对心智要求太高了&#xff0c;不适合搬砖。 就个人经验来看&#xff0c;Go语言简单&#xff0c;下限低&#xff0c;没有什么心智成本&#xff0c…

2025年软件外包平台解析:10个不同定位的真实情况

市面上的软件外包平台数量庞大,定位、规则、收费方式差异很大。有的平台主打低门槛,有的平台强调专业筛选,有的则偏向国际市场。对于想要接触外包工作的开发者来说,选对平台比盲目跟风更重要。 本文整理了 10 个具…

P3574 题解 | 贪心,树形 dp

传送门 题意 给出一颗树,根为 1 号节点,点有点权 \(a\),求从根出发一条遍历每条边恰好两次的路径,使得以下式子最小: 记 \(t_i\) 为第一次到达一个点时走过的路径条数,特别地 \(t_1 = 2 \times n - 2\)(最后回到…

注册账号自建网站高端建筑铝型材

unittest是python自带的单元测试框架&#xff0c;它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作&#xff0c;使得单元测试易于开展&#xff0c;因为它的易用性&#xff0c;很多同学也拿它来做功能测试和接口测试&#xff0c;只需简单开发一些功能&#xff08;…

怎么创建公司的个人网站ps做的网站

在实现播放器的时候&#xff0c;我们需要捕获键盘、鼠标事件进行视频快进、快退&#xff0c;或者双击全屏/退出全屏窗口、鼠标右键弹出菜单栏。默认情况下&#xff0c;在使用libVLC库的时候&#xff0c;我们无法捕获这些事件&#xff0c;因为我们将Qt的视频窗口传递给了libVLC。…

简单工厂模式 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

1.springmvc基础入门(一) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …