1、给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下:


2、格式化磁盘,并进行挂载

# mkfs.ext4 /dev/sdb

# mkdir /usr/local/dbdata/

# mount /dev/sdb /usr/local/dbdata/


3、测试误操作删除以下文件

/usr/local/dbdata/gperftools-2.4.tar.gz #文件

/usr/local/dbdata/pcre-8.32 #目录

执行误操作:

# rm -rf /usr/local/dbdata/gperftools-2.4.tar.gz /usr/local/dbdata/pcre-8.32


4、将误操作所在分区进行只读保护

如果确定文件被误删,在没有备份的情况下请马上对分区实施写入保护(预防新的写入覆盖误删的块数据,因此权限给只读):

# mount -o remount,ro /dev/sdb

# mount -o remount,ro /usr/local/dbdata/


5、数据恢复工具安装

工具安装部署

官方网站是http://extundelete.sourceforge.net/ ,其目前的稳定版本是extundelete-0.2.4.

工具下载

# wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

解压按装

依赖包

# yum -y install gcc-c++ e2fsprogs.x86_64 e2fsprogs-devel.x86_64

# tar -jxvf extundelete-0.2.4.tar.bz2

# cd extundelete-0.2.4

# ./configure

# make && make install

验证安装结果

# extundelete -v


6、文件恢复过程

恢复指定文件:

原理:从根节点(inode=2)开始找到被删除文件的i节点,然后recover i节点。

以下是模拟删除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目录)

先检测被删除的文件有哪些:

# extundelete /dev/sdb --inode 2

从圈出来的可以看到,有以下两个

gperftools-2.4.tar.gz 15 Deleted

pcre-8.32 655361 Deleted

注意:恢复过程不要在误删分区进行,谨防inode、block块相互覆盖

先恢复文件(可根据文件名进行恢复):

# extundelete /dev/sdb --restore-file gperftools-2.4.tar.gz

恢复目录(根据目录名恢复):

# extundelete /dev/sdb --restore-directory pcre-8.32

最后会在当前目录下看到一个名为RECOVERED_FILES的目录,在目录里就可以看到被误删除的文件以及目录:


说在后面的话

根据上面操作证明extundelete 工具可以实现对误删数据的恢复,而且操作简单。

总结:

1、使用rm一定要谨慎

2、磁盘按照功能进行分区是必要的

3、最少掌握一种数据恢复方式

linux文件被覆盖如何恢复_在Linux下误删文件后恢复相关推荐

  1. linux ps 被替换文件怎么恢复,被覆盖的文件如何恢复_被替换掉的文件怎么恢复-win7之家...

    我们在使用电脑的时候,可能会不小心将不该覆盖的文件给替换覆盖掉了,这样会导致以前的文件被覆盖了直接不见了,这让用户们很是着急,那么被覆盖的文件如何恢复呢?我们需要用到一些文件恢复类的软件来操作,现在给 ...

  2. Linux c语言 creat参数,C++_使用C语言操作文件的基本函数整理,C语言creat()函数:创建文件函 - phpStudy...

    使用C语言操作文件的基本函数整理 C语言creat()函数:创建文件函数 头文件: #include #include #include 定义函数: int creat(const char * pa ...

  3. window oracle 只有bak文件怎么恢复_一起来学习Oracle的备份恢复基础吧-4

    基于backup controlfile的恢复 使用备份的控制文件在实际工作中的两种情况: 当前控制文件全部损坏,而数据文件备份.控制文件备份及当前的日志处在不同的SCN版本,它们之间又增加过表空间( ...

  4. 误删了php文件怎么恢复,【问题】phpstorm误删文件后,恢复成了0KB

    我把问题整理成文章,只是方便以后进行追溯 我自己写了一个db-backup脚本,每次项目完了就会执行一次备份. 后面我直接干掉了mysql目录,想恢复13:28分的记录备份,结果一打开吓我一跳 -- ...

  5. linux 虚拟机大量udp请求失败_理解 Linux 网络栈:Linux 网络协议栈简单总结分析...

    1. Linux 网络路径 1.1 发送端 1.1.1 应用层 (1) Socket 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的.Linu ...

  6. 黑苹果系统坏了如何恢复_黑苹果macOS系统U盘版/恢复版基础安装教程

    写在前面 本文最后更新:2020年7月17日 本文是一篇黑苹果安装基础教程,内容比较入门.安装黑苹果,相信谁都不敢说自己能100%解决所有问题.如果本文未能解决你的问题,请见谅.本文主要介绍两种安装方 ...

  7. linux给目录赋访问权限_【Linux】Linux系统中的权限详解

    我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...

  8. 如何修改xd.properties文件中对象存储文件信息_对块存储、文件存储、对象存储的认识总结...

    因工作原因接触了对象存储,从而了解到相关的块存储和文件存储.搜罗了网上各种信息,结合自己的理解,整理如下.欢迎阅读,批评指正. 开头引用下几篇关于"块存储.文件存储.对象存储"的文 ...

  9. mysql 日志节点恢复_基于binlog二进制日志的MySQL恢复笔记

    基于binlog二进制日志的MySQL恢复笔记 刚好复习到这里,顺手做个小实验,记录下. 总的操作流程: step0.关掉数据库的对外访问[防止用户操作继续写入这个库] step1.mysqlbinl ...

最新文章

  1. JS基础 -- 枚举对象中的属性
  2. 程序员读研如何提高技术之我见
  3. 安装 | MatlabR2019b: License Manager Error -8. License checkout failed.
  4. 域名相关的一些基础知识
  5. null、undefined、NaN区分解析和条件判定,以及在IF条件中的判定
  6. libevent: evbuffer缓冲
  7. html页面在f5刷新后把所有值清零,页面刷新列表内容不丢失
  8. 从头搭建drbd+openfiler+corosync (二)
  9. android,PHP解析JSON数组,JSONArray,JSONOject,乱码
  10. 【动态规划】01背包:P1049 装箱问题
  11. centos6.5 conky安装配置
  12. Elastic Job 入门
  13. 应用程序框架实战四:你需要应用程序框架吗
  14. Java如何进行Base64的编码(Encode)与解码(Decode)
  15. c语言有趣源代码,分享一段有趣的小代码
  16. python自动排版公众号_微信公众号文章自动化一键排版
  17. ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.1 + 使用教程【资源分享1081】...
  18. Unity-之-物体旋转-跳跃-2021.5.13
  19. Tensorflow中令人困惑的点(1)
  20. crontab格式写错出现报错

热门文章

  1. MogDB大对象LargeObject存取测试
  2. 2场直播丨CloudQuery最佳实践,
  3. 数据库每日一题 2020.05.08
  4. 阿里云MySQL及Redis灵异断连现象:安全组静默丢包解决方法
  5. 如何基于Jupyter notebook搭建Spark集群开发环境
  6. 跟我学AI建模:分子动力学仿真模拟之DeepMD-kit框架
  7. 技术揭秘:华为云DLI背后的核心计算引擎
  8. 视频会议专线部署不会?别急,我教你
  9. 一线大厂在用的反爬虫方法,看我如何破了它!
  10. 对于Python函数与方法,你可能存在些误解