正文
想起来一位领导说过的案例:
当一个生产系统挂掉以后,发现所有备份都有问题,刻录的光盘也有划痕,磁带机也坏了(一个业界前辈,估计以前还用光盘做备份了),没想到今天真的应验到我的身上了,怎么办?
部门领导知道情况后,已经做了最坏的 B 计划:领导亲自带队和产品 AA 周日赶到客户所在的地市,星期一去领导层沟通;BB 和 CC 去客户管理员那边想办法说服客户......
赶快到网上去查资料进行误删数据恢复,还真找到一款 ext3grep 能够恢复通过 rm -rf 删除的文件,我们磁盘也是 ext3 格式,且网上有不少的成功案例。
于是燃起了一丝希望,赶快对盘 umount,防止重新写入补删文件扇区。下载 ext3grep,安装(编译安装过程艰辛暂且不表)。
先执行扫描文件名命令:
ext3grep /dev/vgdata/LogVol00 --dump-names
打印出了所有被删除文件及路径,心中狂喜,不用执行 B 计划了,文件都在呢。
这款软件不能按目录恢复文件,只能执行恢复全部命令:
ext3grep /dev/vgdata/LogVol00 --restore-all
结果当前盘空间不足,没办法只能恢复文件,尝试了几个文件,居然部分成功部分失败:
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/aqsh/tb_b_attench.MYD
心里不禁一凉,难道是删除磁盘上被写过文件了?恢复机率不大了啊,能恢复几个算几个吧,说不定重要数据文件刚好在能恢复的 MYD 文件中。
于是先将所有文件名重定向到一个文件文件中:
ext3grep /dev/vgdata/LogVol00 --dump-names >/usr/allnames.txt
过滤出来所有 MySQL 数据库的文件名存成 mysqltbname.txt。
编写脚本恢复文件: