scp 传输中断后如何用 rsync --partial-dir 实现续传
发布时间 - 2026-01-26 00:00:00 点击率:次rsync 支持断点续传,需同时使用 --partial 和 --partial-dir(如 .rsync-partial/),并注意源文件未修改、权限及路径配置;仅 --partial-dir 无效。
scp 中断后不能直接续传,必须换 rsync
scp 本身不支持断点续传,传输中断就只能重来。rsync 的 --partial 和 --partial-dir 才是真正解决这个问题的组合。但注意:--partial-dir 不是“自动续传开关”,它只是把未完成的临时文件存到指定目录,避免污染目标路径——真正起续传作用的是 --partial + --append(大文件)或默认的增量比对逻辑。
rsync --partial-dir 的正确用法和必要参数
只加 --partial-dir 不够,常见错误是漏掉 -- 或忽略权限/时间戳干扰。实际命令要这样组织:
rsync -av --partial --partial-dir=.rsync-partial/ \ --rsh="ssh -p 2222" \ /local/file.zip user@host:/remote/path/
-
--partial:保留传输中断时的不完整文件(否则 rsync 默认删掉) -
--partial-dir=.rsync-partial/:把所有未完成的临时文件放进这个子目录,不影响目标目录的干净性 -
-a保持属性,但若源文件被修改过,可能触发全量重传;如只关心内容一致,可改用-r --checksum -
--rsh显式指定 ssh 参数(比如非标端口),否则容易因连接配置缺失导致失败
中断后重试时 rsync 怎么识别并续传
rsync 不会“扫描 .rsync-partial/ 然后接上”,它的续传逻辑依赖两点:源文件没变 + 目标端已有同名不完整文件。所以:
- 如果目标路径下已存在
file.zip(完整),rsync 会跳过 —— 它不校验是否真和源一致,只看大小和修改时间 - 如果中断后目标端只有
.rsync-partial/file.zip.12345(临时名),rsync 会把它重命名为file.zip并继续写入(前提是加了--partial) - 若源文件在中断后被修改过,rsync 会当作新文件处理,丢弃旧临时文件,从头传 —— 这是设计使然,不是 bug
- 对超大单文件,可加
--append强制追加模式(要求文件末尾没变化),比默认行为更可靠
容易被忽略的权限与路径陷阱
--partial-dir 路径是相对于目标目录的,且 rsync 必须有写入该目录的权限。常见翻车点:
- 目标路径是
/var/www/,--partial-dir=.rsync-partial实际创建在/var/www/.rsync-partial/,如果 ssh 用户对/var/www/只有写文件权限、没有建目录权限,就会报错mkdir failed: Permission denied (13) - 使用绝对路径如
--partial-dir=/tmp/rsync-partial可绕过,但需确保远程用户对那个路径有读写权,且注意磁盘空间归属 - 如果目标是 root 目录,又没用
sudo或对应权限,--partial-dir创建失败会导致整个传输终止,不会退化为无目录模式 - 某些老版本 rsync(--partial-dir,执行时报错
unrecognized option,得先查rsync --version
真正麻烦的不是语法,而是中断后你得确认源文件没动、目标端临时文件还在、权限够写、rsync 版本支持——四个条件缺一不可。
# app
# 端口
# ai
# var
# append
# bug
# ssh
# 续传
# 临时文件
# 未完成
# 不完整
# 的是
# 断点续传
# 这是
# 就会
# 还在
# 已有
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Android 常见的图片加载框架详细介绍
如何自定义建站之星网站的导航菜单样式?
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Laravel安装步骤详细教程_Laravel环境搭建指南
如何在阿里云域名上完成建站全流程?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Android滚轮选择时间控件使用详解
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
如何快速选择适合个人网站的云服务器配置?
Laravel API资源类怎么用_Laravel API Resource数据转换
微信小程序 配置文件详细介绍
深圳网站制作平台,深圳市做网站好的公司有哪些?
Python数据仓库与ETL构建实战_Airflow调度流程详解
javascript如何操作浏览器历史记录_怎样实现无刷新导航
黑客如何通过漏洞一步步攻陷网站服务器?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
实例解析angularjs的filter过滤器
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
jQuery 常见小例汇总
七夕网站制作视频,七夕大促活动怎么报名?
个人网站制作流程图片大全,个人网站如何注销?
如何选择PHP开源工具快速搭建网站?
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel PHP版本要求一览_Laravel各版本环境要求对照
如何在万网ECS上快速搭建专属网站?
nodejs redis 发布订阅机制封装实现方法及实例代码
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
青岛网站建设如何选择本地服务器?
详解Android——蓝牙技术 带你实现终端间数据传输
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
java ZXing生成二维码及条码实例分享
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
西安专业网站制作公司有哪些,陕西省建行官方网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
C#如何调用原生C++ COM对象详解
利用vue写todolist单页应用
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析

