29人参与 • 2026-07-28 • Linux
在运维工作中,误删文件是每个人都可能遇到的“噩梦”。本文记录了一次真实的误删恢复案例,希望能为大家提供参考。
关键词:数据恢复、linux、extundelete、rsync、rman
某日,在执行日常清理脚本时,误执行了以下命令:
find /app/middleware/middleware-project-module -type f -mtime +180 -delete
原本意图是清理超过180天的旧文件,但由于路径拼写错误,导致目标目录下的文件被批量删除。受影响的目录包括:
lib/(依赖库)bin/(启动脚本)conf/(配置文件)影响:服务无法启动,项目中断约30分钟。
数据恢复的第一原则:立即停止对磁盘的写入操作。
# 以只读方式重新挂载分区 sudo mount -o remount,ro /app/middleware
这一步可以最大程度防止已删除的数据块被新数据覆盖。
根据是否有备份,选择不同的恢复策略:
| 场景 | 推荐方案 |
|---|---|
| 有完整备份包 | 重新解压部署 |
| 有远程备份服务器 | 使用 rsync 同步 |
| 无备份 | 使用 extundelete 恢复 |
如果项目有原始的 .tar.gz 安装包:
tar -xzf middleware.tar.gz -c /app/middleware/
rsync -avz --delete -e 'ssh -p 2222' \ root@192.168.x.x:/backup/middleware/ /app/middleware/
# 安装工具 sudo yum install -y extundelete # 恢复指定目录 sudo extundelete /dev/sdb1 --restore-directory /app/middleware/lib sudo extundelete /dev/sdb1 --restore-directory /app/middleware/bin sudo extundelete /dev/sdb1 --restore-directory /app/middleware/conf # 恢复的文件位于 ./recovered_files/ ———————————————— 版权声明:本文为csdn博主「一十九的酒」的原创文章,遵循cc 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/gary192211112/article/details/160395102
从 windows 上传或恢复的文件,用户和权限可能不正确:
# 修改所有者和组
chown -r appuser:appgroup /app/middleware/
# 设置目录权限
find /app/middleware/ -type d -exec chmod 755 {} \;
# 设置文件权限
find /app/middleware/ -type f -exec chmod 644 {} \;
# 设置可执行脚本
chmod +x /app/middleware/bin/*.shfind -delete 极其危险,执行前务必先用 -ls 预览# 安全删除模板 find /target/path -type f -mtime +180 -ls # 先预览 find /target/path -type f -mtime +180 -delete # 确认后执行
| 备份类型 | 频率 | 保留 |
|---|---|---|
| 全量备份 | 每周 | 28天 |
| 增量备份 | 每日 | 14天 |
| 归档日志 | 实时 | 14天 |
#!/bin/bash
# 每周全量备份
backup_dir=/backup/project
rman target / << eof
backup incremental level 0 tag 'full'
format '${backup_dir}/full_%d_%t_%s_%p' database;
delete noprompt backup completed before 'sysdate-28';
eof
————————————————
版权声明:本文为csdn博主「一十九的酒」的原创文章,遵循cc 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gary192211112/article/details/160395102数据无价,预防胜于治疗。建议:
mv 先移到临时目录你的备份策略,决定了你的恢复上限。
| 场景 | 命令 |
|---|---|
| 查看文件系统 | df -th |
| 只读挂载 | mount -o remount,ro /dev/sdb1 |
| 安装 extundelete | yum install -y extundelete |
| 恢复目录 | extundelete /dev/sdb1 --restore-directory /path |
| 恢复全部 | extundelete /dev/sdb1 --restore-all |
| rsync 同步 | rsync -avz --delete user@host:/src/ /dst/ |
| 批量改权限 | chown -r user:group /path |
| 原始内容 | 脱敏后 |
|---|---|
/app/tomee/tomee-3dspace-cas3 | /app/middleware/middleware-project-module |
tomee.tar.gz | middleware.tar.gz |
tomee 用户 | appuser |
oinstall 组 | appgroup |
/backup/pdm-db01 | /backup/project |
pdmdb1 | proddb1 |
本文已脱敏处理,所有 ip、路径、用户名均为示例,请根据实际环境调整。
以上就是linux使用find -delete恢复误删文件的方法的详细内容,更多关于linux find -delete恢复误删文件的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论