linux如何恢复被删除的热文件

windows下如果文件被删除还有回收站,如果没放入回收站或者回收站被清空了,还可以使用easyrecover或者finaldata等等很多工具来恢复;

可是linux下没有回收站,那么linux下如果文件被删除了如何恢复呢?如果刚好你删除的文件还在被其它程序调用,那么恭喜你,很轻易的的将删除的文件找回来

我们先手工来删除我们的日志文件/mnt/ramdisk/messages,删除前我们显卡一下这个文件的内容

01 [root@test ~]# head /ramdisk/message
02 Sep 23 13:51:56 test icinga: Icinga 1.7.0 开始... (PID=4692)
03 Sep 23 13:51:56 test icinga: 本地时间 周一 2013年09月23日 13时:51分:56秒 CST
04 Sep 23 13:51:56 test icinga: 日志版本: 2.0
05 Sep 23 13:51:57 test icinga: https://www.icinga.org)
06  
07 Sep 23 13:51:57 test icinga:
08  
09 Sep 23 13:51:57 test icinga:
10 Sep 23 13:51:57 test icinga:
11 Sep 23 13:51:57 test icinga:
12 Sep 23 13:51:57 test icinga: 完成守护进程... (新 PID=4693)
13 Sep 23 13:51:57 test icinga: Event loop started...
14 [root@test ~]#

然后删除这个文件

1 [root@test ~]# \rm /mnt/ramdisk/messages
2 [root@test ~]# ls /mnt/ramdisk/messages
3 ls:/mnt/ramdisk/messages: No such file or directory

文件已经不存在了

这时候我们通过lsof命令查询一下系统当前的文件打开信息(若没有直接yum instal -y lsof安装即可)

1

2

3

4

[root@test ~]# lsof |grep message

syslogd <span style="color: #ff0000;">3558</span> root <span style="color: #008000;">2</span>w REG 0,20 79353857 8837 <span style="color: #800080;">/mnt/ramdisk/messages (deleted)</span>

syslogd 3558 root 3w REG 253,0 0 3578692 /var/log/messages (deleted)

[root@test ~]#

看到我们刚才删除的文件 /mnt/ramdisk/messages,并且状态时deleted,目前调用的进程是3558,目录是2
这时候/proc/3558/fd/2就是我们删除的文件/mnt/ramdisk/messages了

拷贝回去并查看内容验证:

01 [root@test ~]# cp /proc/3558/fd/2 /ramdisk/message
02 [root@test ~]# head /ramdisk/message
03 Sep 23 13:51:56 test icinga: Icinga 1.7.0 开始... (PID=4692)
04 Sep 23 13:51:56 test icinga: 本地时间 周一 2013年09月23日 13时:51分:56秒 CST
05 Sep 23 13:51:56 test icinga: 日志版本: 2.0
06 Sep 23 13:51:57 test icinga: https://www.icinga.org)
07 Sep 23 13:51:57 test icinga:
08 Sep 23 13:51:57 test icinga:
09 Sep 23 13:51:57 test icinga:
10 Sep 23 13:51:57 test icinga:
11 Sep 23 13:51:57 test icinga: 完成守护进程... (新 PID=4693)
12 Sep 23 13:51:57 test icinga: Event loop started...
13 [root@test ~]#

文件回来了~~

时间: 2024-08-04 13:01:36

linux如何恢复被删除的热文件的相关文章

如何在Linux中恢复一个删除了的文件

你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件. 在第一种情况下,你可以到垃圾箱,搜索那个文件,然后把它复原到原始位置.但是第二种情况又该怎么办呢?你可能知道,Linux 命令行不会把删除的文件转移到任何位置,而是直接把它们移除了,biu~,它们就不复存在了. 在这篇文章里,将分享一个很有用的技巧来避免此事发生.同时,也会分享一个工具,不小心删除了某些不该删除的文件时,也许用得上. 把删除创建为 rm -i 的别名 当 -

如何在 Linux 中恢复一个删除了的文件

你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件. 在第一种情况下,你可以到垃圾箱,搜索那个文件,然后把它复原到原始位置.但是第二种情况又该怎么办呢?你可能知道,Linux 命令行不会把删除的文件转移到任何位置,而是直接把它们移除了,biu~,它们就不复存在了. 在这篇文章里,将分享一个很有用的技巧来避免此事发生.同时,也会分享一个工具,不小心删除了某些不该删除的文件时,也许用得上. 把删除创建为 rm -i 的别名 当 -

git 恢复工作区删除的所有文件

/********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天一个不小心将git工作区的内容给删除了,仓库还在,记录一下怎么 * 恢复的方法. * * 2016-10-26 深圳 南山平山村 曾剑锋 ********************************************************************/ 一.参考文档: 1.

在Linux系统中批量删除多个文件的方法总结

  当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间.在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理.rsync实际上用的是替换原理,处理数十万个文件也是秒删. 1. rsync安装,有些系统默认安装有该命令 ubuntu系统: 代码如下: sudo apt-get install rsync fedora 系统: 代码如下: sudo yum install rsync 其他的可以源码安装,到下面的网站下载

Linux中恢复被误删的数据文件的例子

Linux环境中文件被删除的恢复,通常有几种情况,如果数据库实例还未停止,那么恢复很easy,如果实例停掉, 那么可能需要借助相关的工具来进行恢复,这里我进行简单的描述. 1. 使用工具进行恢复(ext3grep或者extundelete,e2fsprogs等工具) 我这里使用ext3grep来进行删除文件的恢复,如下是一个例子. 1). 安装rpm包 rpm -ivh ext3grep-0.10.2-1.el4.rf.i386.rpm 2).模拟数据文件被删除的恢复 SQL> !rm -rf

linux中extundelete恢复已删除的数据文件

因为人员离职闹得不愉快,系统工程师离职后,由于公司未及时关闭其vpn,数据库服务器(Linux 6.5 Oracle 11.2.0.1)帐号未及时被修改,最后直接上去rm ORACLE_BASE给干掉,悲剧的是ORADATA目录也在里面,更加悲剧的是所有数据文件都在里面.也就是说数据库彻底被删除,而且没有任何备份.朋友咨询了我,让我给予支持.最后比较幸运,文件没有被覆盖,inode都还在,通过extundelete顺利恢复所有数据文件,控制文件,redo文件(extundelete恢复Linux

在Linux中如何恢复被删除的文件

  当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件.不过,幸运的是文件是可以通过一些方法恢复的.当用户删除了一个文件,该文件并没有消失,只是被隐藏了一段时间. 这里将解释它是如何工作的.在一个文件系统中,有一个叫做 文件分配表 的东西,这个表跟踪文件在存储单元(如硬盘, MicroSD 卡,闪存驱动器等等)中的位置.当一个文件被删除,文件系统将会在文件分配表中执行以下两个任务之一:这个文件在文件分配表上的条目被标记为 "自由空间" 或删

如何在Linux中恢复仍在活动进程中的已删除文件

使用终端恢复你 Linux 系统上仍在运行进程的已删除文件的快速指南. 许多情况下,删除的文件都可以恢复,比如在该文件有活动的进程在操作它,并且目前被单个或多个用户使用时.在 Linux 系统中,每个当前正在运行的进程都会获得 ID,其被称之为进程标识符 "PID",并将它们存放在 /proc 目录中.这正是我们恢复仍在运行的进程中(具有PID)已删除的文件所需要的东西.这里就是介绍我们如何做到这一点的. 假设你打开了一个压缩文件,之后你删除了这个文件.为了演示目的,压缩文件称为 &q

怎样在 Linux 系统中恢复已删除文件

怎样在 Linux 系统中恢复已删除文件 当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件.不过,幸运的是文件是可以通过一些方法恢复的.当用户删除了一个文件,该文件并没有消失,只是被隐藏了一段时间. 这里将解释它是如何工作的.在一个文件系统中,有一个叫做 文件分配表 的东西,这个表跟踪文件在存储单元(如硬盘, MicroSD 卡,闪存驱动器等等)中的位置.当一个文件被删除,文件系统将会在文件分配表中执行以下两个任务之一:这个文件在文件分配表上的条目