精华内容
下载资源
问答
  • Linux 误删除文件恢复实践
    2019-08-02 14:39:55

    俗言道,常在河边走哪有不湿鞋。在日常运维的过程中难免会误删除一些文件,或目录,甚至于rm -rf /* 的操作。linux系统不像windows删除了还有个回收站可以恢复。

    如果是无关紧要的文件自然不必担心,要是公司特别重要的数据呢?难道只能跑路了吗?当然不是了。对误删除还原分为两种情况,使用两种不同的方法:

    • 删除后进程中存在删除信息
    • 删除后进程中找不到删除信息

    接下来分别演示两种不同的还原方式

    误删除后进程中存在删除信息的情况

    这种情况一般是有活动的进程在持续进行标准输入和输出,即便文件被删除,进程PID依旧存在,这也是为什么删除了一些文件后磁盘空间没有释放的原因。利用这个特性我们可以通过PID来恢复删除的文件。

    开始实操演示

    [root@docker ~]# ll /usr/local/mysql/data/
    total 1114180
    -rw-r----- 1 mysql mysql        56 Jun  5 16:09 auto.cnf
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:12 clientdb
    drwxr-x--- 2 mysql mysql      4096 Jun 11 13:56 devops
    -rw-r----- 1 mysql mysql      1106 Jun 27 13:58 ib_buffer_pool
    -rw-r----- 1 mysql mysql  79691776 Jun 27 13:59 ibdata1
    -rw-r----- 1 mysql mysql 524288000 Jun 27 13:59 ib_logfile0
    -rw-r----- 1 mysql mysql 524288000 Jun 13 18:07 ib_logfile1
    -rw-r----- 1 mysql mysql  12582912 Jun 27 13:59 ibtmp1
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:06 mmsdb
    drwxr-x--- 2 mysql mysql      4096 Jun  6 16:21 mysql
    drwxr-x--- 2 mysql mysql      4096 Jun  5 16:09 performance_schema
    drwxr-x--- 2 mysql mysql     20480 Jun 24 11:30 smsdb
    drwxr-x--- 2 mysql mysql     12288 Jun  5 16:09 sys
    

    这里我们以mysql的日志ib_logfile0为例,该文件一直为mysql进程所使用

    直接 rm -f 删除文件

    # 删除前记录一下MD5值
    [root@docker ~]# md5sum /usr/local/mysql/data/ib_logfile0
    ec2926fbfdab5ed010e3c3e5bca24687  /usr/local/mysql/data/ib_logfile0
    [root@docker ~]# rm -f /usr/local/mysql/data/ib_logfile0 
    [root@docker ~]# ll /usr/local/mysql/data/
    total 602176
    -rw-r----- 1 mysql mysql        56 Jun  5 16:09 auto.cnf
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:12 clientdb
    drwxr-x--- 2 mysql mysql      4096 Jun 11 13:56 devops
    -rw-r----- 1 mysql mysql      1106 Jun 27 13:58 ib_buffer_pool
    -rw-r----- 1 mysql mysql  79691776 Jun 27 13:59 ibdata1
    -rw-r----- 1 mysql mysql 524288000 Jun 13 18:07 ib_logfile1
    -rw-r----- 1 mysql mysql  12582912 Jun 27 13:59 ibtmp1
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:06 mmsdb
    drwxr-x--- 2 mysql mysql      4096 Jun  6 16:21 mysql
    drwxr-x--- 2 mysql mysql      4096 Jun  5 16:09 performance_schema
    drwxr-x--- 2 mysql mysql     20480 Jun 24 11:30 smsdb
    drwxr-x--- 2 mysql mysql     12288 Jun  5 16:09 sys
    
    # 可以看到文件已经没有了

    赶紧lsof看一下

    没有lsof命令的话 直接 yum -y install lsof

    [root@docker ~]# lsof | grep ib_logfile0
    mysqld    1105        mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1215   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1231   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1232   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1233   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1234   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1235   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    mysqld    1105 1236   mysql    3uW     REG                8,2 524288000    1050951 /usr/local/mysql/data/ib_logfile0 (deleted)
    

    根据pid 1105 进入到 /proc下面对应的目录中

    [root@docker ~]# cd /proc/1105/fd
    

    看一下目录中有哪些文件

    图中可以看到所有被1105这个进程所占用的进程,其中就包括刚才删除的 ib_logfile0,对应3号文件

    进行恢复操作

    [root@docker fd]# cp 3 /usr/local/mysql/data/ib_logfile0
    # 直接复制3 号文件到原来的路径中去
    [root@docker fd]# ll /usr/local/mysql/data/
    total 1114180
    -rw-r----- 1 mysql mysql        56 Jun  5 16:09 auto.cnf
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:12 clientdb
    drwxr-x--- 2 mysql mysql      4096 Jun 11 13:56 devops
    -rw-r----- 1 mysql mysql      1106 Jun 27 13:58 ib_buffer_pool
    -rw-r----- 1 mysql mysql  79691776 Jun 27 13:59 ibdata1
    -rw-r----- 1 root  root  524288000 Jun 27 15:08 ib_logfile0
    -rw-r----- 1 mysql mysql 524288000 Jun 13 18:07 ib_logfile1
    -rw-r----- 1 mysql mysql  12582912 Jun 27 13:59 ibtmp1
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:06 mmsdb
    drwxr-x--- 2 mysql mysql      4096 Jun  6 16:21 mysql
    drwxr-x--- 2 mysql mysql      4096 Jun  5 16:09 performance_schema
    drwxr-x--- 2 mysql mysql     20480 Jun 24 11:30 smsdb
    drwxr-x--- 2 mysql mysql     12288 Jun  5 16:09 sys
    
    # 恢复完成了 只是权限需要手动修改一下
    [root@docker fd]# chown mysql:mysql /usr/local/mysql/data/ib_logfile0 
    [root@docker fd]# ll /usr/local/mysql/data/
    total 1114180
    -rw-r----- 1 mysql mysql        56 Jun  5 16:09 auto.cnf
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:12 clientdb
    drwxr-x--- 2 mysql mysql      4096 Jun 11 13:56 devops
    -rw-r----- 1 mysql mysql      1106 Jun 27 13:58 ib_buffer_pool
    -rw-r----- 1 mysql mysql  79691776 Jun 27 13:59 ibdata1
    -rw-r----- 1 mysql mysql 524288000 Jun 27 15:08 ib_logfile0
    -rw-r----- 1 mysql mysql 524288000 Jun 13 18:07 ib_logfile1
    -rw-r----- 1 mysql mysql  12582912 Jun 27 13:59 ibtmp1
    drwxr-x--- 2 mysql mysql      4096 Jun 10 17:06 mmsdb
    drwxr-x--- 2 mysql mysql      4096 Jun  6 16:21 mysql
    drwxr-x--- 2 mysql mysql      4096 Jun  5 16:09 performance_schema
    drwxr-x--- 2 mysql mysql     20480 Jun 24 11:30 smsdb
    drwxr-x--- 2 mysql mysql     12288 Jun  5 16:09 sys
    
    # 再看一下MD5 值
    [root@docker fd]# md5sum /usr/local/mysql/data/ib_logfile0
    ec2926fbfdab5ed010e3c3e5bca24687  /usr/local/mysql/data/ib_logfile0
    

    与原文件MD5值保持一致恢复完成

     

     


     

    更多相关内容
  • Linux 误删除文件恢复

    2021-05-18 18:16:54
    5、打开刚刚被删除文件所在分区,用ls 加-d参数显示刚刚删除文件所在的目录 6、显示有<>尖括号的就是我们要找的文件Inode 号 执行 logdump -i <1056904> 7、记住上图中红色标记部分,执行quit退出,...

    1、创建文件

    在这里插入图片描述
    文件路径:/root/fuwu/test1.txt

    2、删除文件

    在这里插入图片描述

    3、查看被删除的文件所属分区

    在这里插入图片描述

    4、运用系统自还工具debugfs来修复

    在这里插入图片描述

    5、打开刚刚被删除文件所在分区,用ls 加-d参数显示刚刚删除文件所在的目录

    在这里插入图片描述

    6、显示有<>尖括号的就是我们要找的文件Inode 号 执行 logdump -i <1056904>

    在这里插入图片描述

    7、记住上图中红色标记部分,执行quit退出,退出后执行下图中红色部分:

    在这里插入图片描述

    8、如上结果则表示恢复成功:

    在这里插入图片描述

    展开全文
  • Linux XFS文件系统误删除文件恢复.pdf
  • linux误删除文件恢复

    千次阅读 2021-02-01 21:57:24
    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于...

    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的

    一、用运SecureCRT远程对操作系统上,查看一下当前系统版本号,及文件系统格式

    img

    img

    二、为方便本次实验,我们新创建一文件。

    img

    img

    三、执行删除操作

    img

    rm -rf web_1.txt

    四、运用,系统自还工具debugfs来修复

    img

    img

    五、打开,刚刚被删除文件所在的分区


    查看目录在分区

    imgimg


    imgimg

    六、用ls 加-d参数显示刚刚删除文件所在的目录

    imgimg

    七、显示有<>尖括号的就是我们要找的文件Inode 号 执行logdump –I <19662057>

    img

    img

    八,执行完命令后,显示了一屏信息,我们需要的是下面这一行,并且要记住,后面的值

    imgimg

    九、退出dedugfs

    qiut

    img

    十,执行如下命令

    imgimg

    bs与下图offset值一致,skip与block值一致

    img

    img

    十一,以上结果表示恢复成功我们看下/opt/wb_1目录下到底有没有

    img

    img

    恢复成功!

    以上就是良许教程网为各位朋友分享的Linux相关知识。

    展开全文
  • 下面介绍具体方法:先说下我准备删除的文件为/root/silencewolf/silencewolf.sh 里面内容如下: 执行rm -f silencewolf....打开误删除的分区磁盘open /dev/sda3 具体如图: 2、输入ls -d /root/silencewolf 删除文件...

    下面介绍具体方法:

    先说下我准备删除的文件为/root/silencewolf/silencewolf.sh 里面内容如下:

    1a91a22b1b0d64e2ea78d1bc8246feb8.png

    执行rm -f silencewolf.sh,用ls查看文件夹为空了

    09c7a0fd2d357250ead007d1fb01fe8d.png

    下面开始恢复文件,具体操作如下:

    1、输入debugfs,打开debugfs功能,打开误删除的分区磁盘

    open /dev/sda3 具体如图:

    255280960e3ae510e2918569e84297e3.png

    2、输入ls -d /root/silencewolf 删除文件的文件夹路径如图:

    095eed8434126092c6d26a794a438c6a.png

    找到删除的文件的索引值<18022483>

    3、输入logdump -i <18022483> 命令如下图:

    2bda13e1a1587ba0a400a5601b59f725.png

    上面输出信息有好几页,做好塞选,找到如下字段:

    fdf533146b86877c55cc7cdd3e03587a.png

    Blocks:(0+1):18024668这段记录18024668这个值,quit退出debugfs。

    4、下面用dd命令来恢复,输入如下:

    dd if=/dev/sda3 of=/tmp/silencewolf.sh.bak bs=4096 count=1 skip=18024668

    5d890f2f8e48f6bebd8b7c1837eb3cf6.png

    5、查看/tmp目录下文件多了个silencewolf.sh.bak,cat、他发现为原来删除的文件silencewolf.sh如下图:

    71043db098c9b4b38c25052b712e5c7e.png

    到这里文件恢复已经完成,把他从/tmp下cp到/root/silencewolf/silencewolf.sh彻底完成恢复了。

    总结:主要利用debugfs的调试功能找到文件的索引,其实rm删除的文件并不是真的删除了,而是inode被删除了,所以比较小的文件可以用这种方法恢复,对于大文件,这个恢复有点问题,利用extundelete工具能够很好的解决大文件误删除的问题,以后有机会在做介绍。

    本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1425073

    展开全文
  • Linux运维不会恢复Linux误删除文件,这是很不应该的
  • 作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。本文首先介绍Ext2文件系统结构,给出了恢复被误删文件的方法。
  • linux操作删除文件如何恢复

    万次阅读 2018-08-10 17:37:24
    假设文件是在” /home/linux/shl/sy_linux/路径下 参考:百度知道... 我要恢复文件是:root@ubuntu:/home/linux/shl/sy_linux/pthread_test.c linux@ubuntu:~/shl/sy_linux$ df -T Filesyst...
  • 主要给大家介绍了关于Linux利用lsof/extundelete工具恢复误删除文件或目录的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Linux恢复误删除文件或目录

    千次阅读 2020-06-15 14:21:47
    误删除Linux系统文件了?不用急,本文将给你一个恢复Linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~ 说在前面的话 针对日常维护操作,难免会出现文件误删除的操作。大家熟知Linux文件系统不同...
  • Linux 下的文件一旦被删除,是难以恢复的。对于家庭单机使用的Linux ,或者误删文件后及时补救,还是可以恢复的。下面就来介绍一下。
  • linux系统中操作重要文件,备份是最重要的但是有时候误删除文件,要怎么恢复呢?下面经验可以试试当前系统只有一个用户在登录,对文件进行了误删除操作,那么,这个时候该如何进行操作?注意事项及解决思路:停止对...
  • 不过Linux删除文件并不是真实的删除磁盘分区中的文件,而是将文件的inode节点中的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被系统重新分配时,那些被删除的数据就会被覆盖,所以......
  • linux不像windows有个回收站,使用rm -rf *基本上文件是找不回来的。 那么问题来了: ...误删除文件进程还在的情况: 这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID依旧
  • 各位有没有在Linux误删除文件,是否删除后使您非常懊恼,为什么Linux系统没有像windows一样的回收站可以恢复误删除文件?各位看官,Linux误删除文件不必惊慌,下面几步叫你如何在Linux系统下恢复误删除的...
  • 作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于...
  • Linux xfs文进系统备份恢复,非常不错,建议大家下载学习
  • 一、误删除文件进程还在的情况 这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID还是存在。这也就是有些服务器删除一些文件但是磁盘不释放的原因 比如当前举例说明: 通过一个shell...
  • 一、深入理解Linux文件系统 inode 和block 概述 1.1.2、inode 的内容 用户打开文件时,系统内部的过程 inode 的大小 inode 的特殊作用 inode删除命令 二、硬链接与软链接 硬链接 软链接 三、恢复ext类型...
  • 1、文件基本操作1.1 查看文件# ls1.2 创建1.2.1 创建文件# touch {file_name}# vim {file_name}1.2.2 创建目录# mkdir -p {dir}1.3 复制1.3.1 复制文件# cp {src_file} {dest_...dir}1.4 删除1.4.1 删除文件# rm ...
  • 恢复删除的文件误删除文件时,如果还有程序对此文件进行操作,那么可以通过lsof 命令恢复文件内容。举例:误删粗messages日志文件[root@cdn ~]# cat /var/log/messages |wc -l20568[root@cdn ~]# rm -f /var/log/...
  • 当然,这里所指的是彻底删除,即已经不能通过“回收站”找回的情况,比如使用"rm-rf来删除数据针对Linux下的EXT文件系统,可用的恢复工具有debugfs、ext3grep、extundelete等。本贴中仅以extundelete为例,这是一个开源的...
  • 那么问题来了:对于linux下误删的文件,我们是否真的无法通过软件进行恢复呢?答案当然是否定的,对于误删的文件,我们还是能通过软件恢复过来的。对于误删文件还原可以分为两种情况:一种是删除以后在进程存在删除...
  • testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件。 二、安装testdisk 可以使用 apt install testdisk 或 yum install testdisk 等命令安装 ...
  • 如何恢复Linux中的误删文件

    万次阅读 2019-05-29 11:54:22
    写在前面的话在开始教程之前我有必要提醒大家,使用窗口管理器(GUI)删除文件和使用命令行工具(CLI)删除文件这两种方法之间是有区别的。当我们使用窗口管理器来删除文件时,我们仅仅只是将文件从某个目录移动到了...
  • 恢复方法 先看看文件是不是还有进程占用(文件恢复也基于此种情形) [root@root-10-xx-xx-174 boci_logs]# lsof | grep /dev/shm java 132387 root mem REG 0,16 48602 474577519 /dev/shm/xxx/lib/tomcat-juli-...
  • Linux文件误删除恢复操作

    万次阅读 2017-06-21 13:51:29
    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,252
精华内容 8,500
关键字:

linux误删除文件恢复