误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~
说在前面的话
针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门。所以本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。
分析对比debugfs. testdisk 6.14. extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作。
extundelete下载官网地址:https://pkgs.org/download/extundelete
linux下文件误删除,使用extundelete恢复测试过程
给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下:
格式化磁盘,并进行挂载
#mkfs.ext4/dev/sdb#mkdir/usr/local/dbdata/#mount/dev/sdb/usr/local/dbdata/
测试误操作删除以下文件
/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
将误操作所在分区进行只读保护
如果确定文件被误删,在没有备份的情况下请马上对分区实施写入保护(预防新的写入覆盖误删的块数据,因此权限给只读):
#mount-oremount,ro/dev/sdb#mount-oremount,ro/usr/local/dbdata/
数据恢复工具安装
工具安装部署
官方网站是http://extundelete.sourceforge.net/,其目前的稳定版本是extundelete-0.2.4.
工具下载
#wgethttps://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
解压安装
依赖包
#yum-yinstallgcc-c++e2fsprogs.x86_64e2fsprogs-devel.x86_64#tar-jxvfextundelete-0.2.4.tar.bz2#cdextundelete-0.2.4#./configure#make&&makeinstall
验证安装结果
#extundelete-v
文件恢复过程
恢复指定文件:
原理:从根节点(inode=2)开始找到被删除文件的i节点,然后recover i节点。
以下是模拟删除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目录)
先检测被删除的文件有哪些:
#extundelete/dev/sdb--inode2
从圈出来的可以看到,有以下两个
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 工具可以实现对误删数据的恢复,而且操作简单。
总结:
使用rm一定要谨慎
磁盘按照功能进行分区是必要的
最少掌握一种数据恢复方式
实例解析|交互方案如何影响产品数据?SEO标题优化:让你的网站排名更高!seo优化如何让企业新网站做好网站收录呢?在选择一家网站建设公司合作前,一定需看这个企业是不是有企业营业执照,是不是靠谱的网站制作常用的编程语言是什么?美国云服务器有什么好处专业网站建设企业如何制作电商网站企业网站建设实现文件的上传