一种文件恢复技巧

简介:

使用条件:

系统中有进程一直在访问这个文件

特别利于:日志文件和数据库

原因:

  1. 伪删除机制,文件数据还在,但是目录的索引被删除了。
  2. 此时,在访问的程序并不知道文件被删,所以句柄(指向文件的标识)依然存在。
  3. 于是,我们就可以通过lsof命令找出这个句柄,通过它找到错删的文件内容。

详细用法:

打个比方,由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

1 # lsof |grep /var/log/messages
2 syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages(deleted)

从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

01 # head -n 10 /proc/1283/fd/2
02 Aug  4 13:50:15 holmes86 syslogd 1.4.1: restart.
03 Aug  4 13:50:15 holmes86 kernel: klogd 1.4.1, log source /proc/kmsg started.
04 Aug  4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0)
05 #1 SMP Wed Jul 18 11:18:32 EDT 2007
06 Aug  4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:
07 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
08 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
09 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)
10 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)
11 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)
12 Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)

从上面的信息可以看出,查看 /proc/1283/fd/2 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。

 

用法部分摘自 <http://blog.csdn.net/guoguo1980/article/details/2324454>

转载请注明:旅途@KryptosX » 一种文件恢复技巧

目录
相关文章
|
存储 安全
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
随着电脑和移动设备的广泛使用,U盘已经成为了人们在数据传输和备份中不可或缺的重要工具之一。特别是在计算机方面,一天要用的数据很多。但有时,我们可能会遇到U盘文件损坏的情况,导致无法访问里面的数据,又不清楚是什么原因造成的,这也是很让人烦恼的。那我们可以用什么方法呢?其实先了解u盘出现损坏的原因再对症下药会简单很多。今天兔八哥爱分享就给大家分享一些 u盘恢复数据方法,操作方法简单实用,大家可以试试!
2475 0
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
|
2月前
|
存储 算法 安全
u盘里误删的文件去哪了
在使用U盘时,许多人都会遇到一个常见的问题:不小心将重要的文件删除了。那么,这些误删的文件究竟去了哪里?是否还有可能找回来?本文将为您详细解答这一疑问。
u盘里误删的文件去哪了
|
2月前
systemback 系统备份与恢复
systemback 系统备份与恢复
38 0
|
2月前
|
Unix Shell 测试技术
误删数据恢复系列1
误删数据恢复系列1
47 0
|
2月前
|
固态存储 Java
磁盘误删卷数据恢复工具
磁盘误删卷数据恢复工具
32 0
|
5月前
|
Oracle Unix 关系型数据库
通过磁带系统备份与还原的一些记录
通过磁带系统备份与还原的一些记录
29 1
|
SQL 存储 Linux
FreeFileSync 文件备份
需求目标实现 sql server 数据库文件本地+异地备份,备份文件包括:【.bak】数据库的备份文件,包含日志与库数据文件;【.mdf】数据库数据文件,存放一个数据库的数据信息;【.ldf 】数据库日志文件,存放对该数据库的更新操作(增、删、改)的文件;当然以下讲述的方案也可以实现其他文件的备份,按...
354 1
FreeFileSync 文件备份
|
Oracle 关系型数据库 数据库
4、数据文件的备份与恢复
数据文件的备份与恢复
135 0
|
存储 Windows
不小心把u盘里的文件删除了怎么恢复丢失怎么办?,用什么数据恢复软件恢复
自从手机和电脑可以无线传输文件后,U盘就被遗忘在包里,偶尔看见,但基本上没再用过。昨天突然想看看U盘里还有什么文件资料,结果,插在电脑上却读不出来,这是怎么回事呢?u盘在电脑上读不出来数据怎么修复?紧急求救身边的懂电脑小哥哥,他教我一招,就轻松解决了这个难题。
255 0
不小心把u盘里的文件删除了怎么恢复丢失怎么办?,用什么数据恢复软件恢复
|
存储 监控 固态存储
EasyRecovery数据恢复可以轻松恢复删除和丢失的任何数据
Ontrack EasyRecovery易恢复是由全球著名数据厂商Kroll Ontrack出品的一款专业级数据文件恢复软件,号称最好的数据恢复软件!
240 0