首页 > 代码库 > 基于ext4的文件系统删除文件后的恢复方法
基于ext4的文件系统删除文件后的恢复方法
警告:若数据块被覆盖,则无法恢复,第一时间问清楚是什么时候删除的数据,叮嘱不要继续再动了。
安装恢复软件extundelete
yum install extundelete -y如果是挂载的磁盘请卸载磁盘
umount -lf /dev/sdb
从根节点开发扫描,扫描结果如下所示
extundelete --inode 2 /dev/sda2
找到被删除文件所在的父目录或祖父目录的号码继续向下扫描(目录的inode号是其目录下面其他文件的开始的inode号,所以以它为基准向下扫描)
被删除的文件在3306目录,所以继续以3306的inode号为起始扫描
extundelete --inode 3801090 /dev/sda2
恢复被删除的文件(执行这条命令前,请cd进入到空间足够的分区,以免恢复造成空间不足)
extundetele --restore-inode 3801094 /dev/sda2
文件恢复后存放在执行命令时所在目录下的RECOVERED_FILES目录下,名称已变,建议文件数不多,一个个恢复再改名
恢复整个文件夹则不用改名,做这步前最好把文件夹中的内容备份到其他地方,以免恢复被覆盖,未测试过
extundelete /dev/sda2 --restore-directory /data/3306/
注意事项
如果是生产环境,上面有其他业务,应该确保在用户访问量最低的半夜进行,恢复需要卸载磁盘,不卸载没有尝试过,主要是有数据还在写入到磁盘,容易出错。
善后工作
收回非必要的权限,目录755,文件644,上线代码可用jenkins配合shell,shell拷贝前备份原来的包,如果没有这套最好让运维人员帮助上线,原则上开发人员没有任何权限。顶多给一个启动相关服务,查看相关日志的权限。公司最重要的是制度流程,什么人有什么权限必须要有书面规定,人员要权限也必须有申请记录,以免自己背黑锅!
本文出自 “山大王” 博客,请务必保留此出处http://chenshifei.blog.51cto.com/11883413/1855951
基于ext4的文件系统删除文件后的恢复方法