0

0

rsync --delete 误删目标目录的 --dry-run + 备份恢复流程

冰川箭仙

冰川箭仙

发布时间:2026-01-20 11:48:34

|

468人浏览过

|

来源于php中文网

原创

误删后关键在及时止损与备份恢复:一、用rsync -av --delete --dry-run预览操作并检查deleting行;二、立即停止写入,卸载分区或停服务,避免覆盖;三、依赖硬链接快照(如rsnapshot)和多版本备份实现可逆恢复。

rsync --delete 误删目标目录的 --dry-run + 备份恢复流程

rsync 带 --delete 时没加 --dry-run,导致目标目录被误删,这种情况很常见但后果严重。关键不是“能不能恢复”,而是“有没有备份”和“是否及时止损”。下面分三步讲清楚:如何预防、误删后怎么应急、以及备份恢复怎么做。

一、用 --dry-run 真正看清 rsync 要做什么

--dry-run 不是万能保险,它只模拟删除和同步动作,但结果依赖于当前文件状态和 rsync 参数组合。很多人跑完 --dry-run 没仔细看输出,就直接去掉参数执行,这是最大风险点。

  • 务必把 --dry-run-v(verbose)一起用,例如:
    rsync -av --delete --dry-run /src/ user@host:/dst/
  • 重点检查输出里有没有大量 deleting xxx 行——尤其是你本意不想删的目录或文件
  • 注意路径末尾斜杠:/src/(同步内容)和 /src(同步目录本身)行为不同,--dry-run 输出会体现这点
  • 如果目标是远程主机,先确认远程 rsync 版本是否支持 --dry-run(2.6.4+ 都支持,但极老版本可能忽略该参数)

二、误删发生后的紧急响应步骤

一旦发现 --delete 已执行且重要文件消失,立刻停止所有对目标目录的写入操作,避免新数据覆盖已删除文件的磁盘空间。

Frase
Frase

Frase是一款出色的长篇 AI 写作工具,快速创建seo优化的内容。

下载
  • 如果是本地目录:立即卸载所在文件系统(如 umount /mnt/data),或至少禁止任何进程写入该分区
  • 如果是远程服务器上的目录:登录后第一时间停掉相关服务(如 web server、db、定时任务),并检查 lsof +D /path/to/deleted —— 如果有进程还打开着已被删的文件,/proc/PID/fd/ 下仍可找回
  • 不要运行 rsync 反向同步、不要 cp -r 覆盖、不要格式化或重建文件系统
  • 快速确认是否有现成备份(见下节),没有就立刻启动文件恢复工具(如 extundeletephotorecdebugfs),但成功率取决于文件系统类型和后续写入量

三、可靠的备份 + 恢复流程设计

靠恢复工具是下策,上策是建立带校验、带保留策略的 rsync 备份体系,让误删可逆。

  • 每次 rsync 同步前,先用硬链接创建快照(推荐 rsnapshot 或手动用 cp -al):
    cp -al backup.0/ backup.1/ && rsync -a --delete /src/ backup.0/
  • 在目标端保留多份历史副本(如 daily.0 ~ daily.7),每份都是完整目录结构,不依赖增量差异
  • 备份命令中加上 --backup --backup-dir=... --suffix=... 可单独保存被删文件(适合小规模变更场景)
  • 定期验证备份完整性:用 rsync -avn 对比源与最新备份;对关键目录跑 sha256sum -c 校验清单
  • 恢复时不要直接覆盖生产目录,先 rsync -a backup.3/ /restore_test/ 检查内容,确认无误再切换

真正安全的 rsync 流程,不是靠一次命令不出错,而是让每一次“出错”都落在可回退的边界内。备份不是附加项,它是 --delete 的必要搭档。

相关专题

更多
数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.29

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

13

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

93

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 3.8万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.9万人学习

ASP 教程
ASP 教程

共34课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号