当意识到误删除文件后,切忌千万不要再频繁写入了,否则你的数据恢复的数量将会很少。 而我们要做的是,第一时间把服务器上的服务全部停掉,直接killall 进程名 或者 kill -9 pid 。 然后把误删除文件所在分区,重新挂载成ro,只读的 (mount  -o ro  /dev/sdb2  /data/)。


然后我们需要去下载和安装一个工具叫做   extundelete

1.安装依赖包

# yum install e2fsprogs* -y

2.下载并安装extundelete

# wget http://nchc.dl.sourceforge.net/p ... elete-0.2.4.tar.bz2

# tar -jxvf extundelete-0.2.4.tar.bz2

# cd extundelete-0.2.4

# ./configure --prefix=/usr/local/extundelete

# make && make install

3.验证是否安装成功

# cd /usr/local/extundelete/bin

# ./extundelete -v

---------------------

extundelete version 0.2.4

libext2fs version 1.41.12

Processor is little endian.

---------------------

假如我们误删除文件所在分区为/dev/sdb2  

恢复步骤如下:

/usr/local/extundelete/bin/extundelete  /dev/sdb2 --inode 2    //可以扫描哪些文件被删除了

假如我们有一个文件叫做1.txt被删除了。 那么恢复它的命令为:

/usr/local/extundelete/bin/extundelete --restore-file 1.txt  /dev/sdb2

被恢复的文件在  当前目录下的  RECOVERED_FILES/ 目录  

ls  ./RECOVERED_FILES/  可以看到有1.txt

而想恢复整个分区上的文件可以这样:

/usr/local/extundelete/bin/extundelete --restore-all  /dev/sdb2 

恢复后的文件也是在   ./RECOVERED_FILES/  下,能否恢复就看你的运气好不好了。