linux中不小心删除重要文件?

    作者:课课家教育更新于: 2016-10-14 11:33:30

      使用计算机的时候,如果不小心删除了重要的文件,这也是属于正常的一个操作,一时手快,删除了重要的文件那也是让人非常苦恼的一件事情,在Windows中删除了文件我们还可以从垃圾箱中找回来,但有时候在Linux中,自己非常辛苦的写满了重要的脚本和一些配置文件的时候,一不小心就给删除了,这种情况我们该怎么办呢,找回文件的方式有点麻烦,我们来看看该怎么恢复。

    linux中不小心删除重要文件_linux恢复_linux还原_系统运维_课课家

      长期使用电脑误删文件是正常的,一般在Linux上如果事先没有用别名(alias)修改默认的rm功能,rm后文件就会丢失,让用户欣慰的是,如果是在一般的删除文件操作中,Linux它并不会立就会清空存储该文件的block内容,它只是会释放该文件所占用的inode和datablock,这一点我们是需要了解清楚的。

      其实在Linux上rm的过程其实就是将inodebitmap和datablockbitmap中的相应标识设为空闲状态的过程,这个过程中它并没有涉及到真正的数据,为什么在Linux下删除大文件这么快速?也就是这个原因了,因为大文件所占的磁盘根本就没有清空。因此如果我们能找到文件对应的inode,由此如果是查到相应的datablock,就可以从磁盘上把已删除的文件恢复出来,在linux上很多文件/磁盘恢复工具都是这么做的。

      通常来说二进制文件、库文件等删除后都可以从其他Linux拷贝恢复,不是很要紧,如果自己辛苦写的脚本或者配置文件误删了就杯具了。误删这种蠢事经常在VPSee身上发生,这也就是经常遇到的问题。

      或者你会遇到过这样的一些操作问题,就是开了screen多次ssh到不同服务器上,在前后切换的过程中删除了一个很肯定的配置文件,后来发现删的文件是对的,可惜在一台错误的服务器上,本来应该在A服务器上删除file.txt结果在B服务器上删除了file.txt,多个screen和ssh已经搞不清楚了,而且主机名没有安排好,多台机器都是用的localhost,非常困难的去识别当时的环境。如果使用Linux的时候不幸误删了一个文本文件怎么办呢?方法还是有的,只是操作复杂了一点而已。

      我们是可以先临时建一个文本文件vpsee.log做测试,然后删除这个文件:(看看以下的代码)

      $echo"important log file for vpsee.com">vpsee.log

      $catvpsee.log

      important log file for vpsee.com

      $rmvpsee.log

      如果你可以记住刚才删除文件中的某个关键字的话,这对你的搜索将会有一定的帮助,你可以用grep搜索整个/dev/sda1,-a标志位的意思是把/dev/sda1这个分区看成是文本形式的(因为分区本身是二进制形式的),-B10-A100它的意思是如果找到关键字就打印出其前10行和后100行的内容:

      #grep-a-B10-A100'vpsee.com'/dev/sda1>tmp.txt

      在一堆@之间可以找到我们刚才删除的内容:符号比较多,需要我们耐心的去寻找。

      $vitmp.txt

      ...

      @$^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@?^@^@^@^A^@^@^@^@^@^@^@^@^@^@^@è^K^@^@^@

      ^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@è^K^@^@×^@

      ^@^@importantlogfileforvpsee.com

      @

      @

      ...

      除此之外,用户如果误删了二进制、doc、png/jpg/gif之类的文件,可以用一些第三方ext2/ext3文件恢复工具帮助恢复文件,比如TestDisk,PhotoRec等这些软件也是可以进行恢复的,操作起来也是比较简单。

        总结:在linux中删除文件的话是非常的快速的,原因在文中我们可以知道,但是要恢复的话,那就需要有一定的耐心和技术水平了,操作起来是比较复杂的,有了经验之后,以后也就不会太麻烦了。

课课家教育

未登录

1