• 在Linux下误删文件后恢复【转】


    针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门。所以本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。

    分析对比debugfs、testdisk 6.14、extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作。

    extundelete下载官网地址:https://pkgs.org/download/extundelete

    image.png

    Linux下文件误删除,使用extundelete恢复测试过程


    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、最少掌握一种数据恢复方式

    本文来自 运维人生 转载请注明;

    本文地址:http://www.ywadmin.com/?id=76

  • 相关阅读:
    mysql学习日志
    Python学习day10 Javascript/Jquery
    Python学习day07 多线程多进程及主机管理
    Linux基本命令
    django 用户认证/Excel导入Mysql
    转:iptables详解
    Python django前端导入Excel脚本
    Python学习day08 分布式监控系统开发实战
    Subline Text2
    MySQL 常用函数分析
  • 原文地址:https://www.cnblogs.com/paul8339/p/10168728.html
Copyright © 2020-2023  润新知