`
zhao_rock
  • 浏览: 191421 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Linux 从进程相关的文件描述中恢复数据

 
阅读更多

在Linux中误删除了某个文件,但是 ps-ef|grep 文件名 发现某个进程还在使用该文件,那么可以通
过以下方式恢复文件。

例如:
创建一个简单文件/tmp/test.txt, 随便向里面写点内容

两个client模拟,client1 负责打开文件less /tmp/test.txt(模拟占用线程)

client2 负责恢复文件

 

恢复步骤(均在client2上执行)

 

1. 查看/tmp/test.txt被占用的进程id

[root@host tmp]# ps -ef|grep test.txt
root     31631 31539  0 09:35 pts/0    00:00:00 less test.txt
root     31649 31579  0 09:36 pts/1    00:00:00 grep test.txt

 

2. cd /proc/31631/fd 文件夹中

 

3. 执行ll命令

[root@host fd]# ll
total 0
lrwx------ 1 root root 64 Dec  3 09:36 0 -> /dev/pts/0
lrwx------ 1 root root 64 Dec  3 09:36 1 -> /dev/pts/0
lrwx------ 1 root root 64 Dec  3 09:36 2 -> /dev/pts/0
lr-x------ 1 root root 64 Dec  3 09:36 3 -> /dev/tty
lr-x------ 1 root root 64 Dec  3 09:36 4 -> /tmp/test.txt (deleted)

 

4. 发现了4是软连接到 /tmp/test.txt 文件中的

cat 4 即可找到删除的文件内容

 

以下是/proc目录中进程N的信息
/proc/N/cmdline 进程启动命令 
/proc/N/cwd 链接到进程当前工作目录
/proc/N/environ 进程环境变量列表
/proc/N/exe 链接到进程的执行命令文件
/proc/N/fd 包含进程相关的所有的文件描述符
/proc/N/maps 与进程相关的内存映射信息
/proc/N/mem 指代进程持有的内存,不可读
/proc/N/root 链接到进程的根目录
/proc/N/stat 进程的状态
/proc/N/statm 进程使用的内存的状态
/proc/N/status 进程状态信息,比stat/statm更具可读性
/proc/self 链接到当前正在运行的进程

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    Linux 从进程相关的文件描述中恢复数据.docx

    本文将详细讲解如何从进程相关的文件描述符中恢复已删除的文件,以Linux中的一个实例来阐述整个过程。 首先,当一个文件被删除时,如果还有进程在使用这个文件,该文件实际上并没有立即从系统中消失,而是被标记...

    linux进程描述符

    此外,它还记录了进程的时间信息(如utime, stime, cutime, cstime),信号处理信息(如pending和blocked信号),文件系统状态(由`fs_struct`表示),打开的文件描述符,以及等待队列等。 进程描述符的`thread_...

    Linux内核中读写文件数据的方法

    - 这些函数依赖于进程上下文,因此不适合在中断处理程序或非进程相关的代码中执行。如果必须在这样的环境中操作文件,可以考虑创建内核线程来执行这些任务。 总结来说,Linux内核中的文件操作涉及到一系列内核特有...

    通过文件描述符恢复被误删除的文件(前提是文件正被某一个进程占用着,未被释放)

    在Linux系统中,文件描述符是操作系统用于标识和操作打开文件的一种抽象机制。当一个程序打开一个文件时,系统会分配一个唯一的文件描述符给它,通常从0开始(标准输入),1(标准输出),2(标准错误)。在这个场景...

    linux内核中读写文件数据方式详解

    - `id`: 通常传入`NULL`或当前进程的文件描述符表标识`current->files`。 ### 结论 在Linux内核中进行文件操作需要谨慎处理,确保使用的API正确无误,并且遵循内核开发的最佳实践。通过上述介绍的函数及其使用方法...

    linux下恢复被删除的文件.zip

    在Linux中,当使用`rm`命令删除文件时,系统并不会立即从硬盘上擦除数据,而是仅仅将文件的元数据(如文件名和inode号)从文件系统的目录结构中移除。因此,只要文件的数据块未被新数据覆盖,理论上就有可能恢复已被...

    Linux系统进程讲解.pdf

    从【部分内容】中提供的信息来看,虽然文字因为OCR技术原因出现了一定程度的混乱,我们可以从中识别出与Linux进程相关的一些技术术语,并对它们进行解读和讲解。 1. IO(输入/输出):在进程管理中,IO是一个至关...

    Linux下利用Lsof恢复误删文件的方法.docx

    在 Linux 系统中,每个进程都可以打开多个文件,每个文件都对应一个文件描述符(File Descriptor)。文件描述符是一个整数,它唯一标识一个文件。文件描述符可以用来标识一个文件,并且可以用来控制文件的读写操作。...

    linux0.11文件系统

    在Linux 0.11中,文件系统的设计是层次化的,从超级块开始,通过缓冲区管理数据块,然后通过iNode管理和追踪文件,最后通过文件表和文件描述符表实现进程对文件的操作。这种设计确保了高效的数据访问和文件操作,...

    Linux 误删文件恢复命令及方法.doc

    `extundelete`的优势在于,即使文件不再被任何进程使用,它也能尝试从分区日志中恢复数据。 使用`extundelete`进行恢复需要注意以下几点: 1. 在尝试恢复之前,要确保被删除数据的分区已经卸载,防止新数据覆盖原有...

    Linux 误删文件恢复命令及方法.docx

    然后,切换到 /proc 下,删除文件对应的进程的 pid 下的文件描述符中的目录中,将对应的内容重定向或 cp 到其他文件中。 二、extundelete 命令恢复文件 extundelete 命令使用存储在分区日志中的信息,尝试恢复已从...

    linux中进程与线程

    1. **独立性**:每个进程都有自己的资源,包括内存、文件描述符、信号量等。 2. **并发性**:多个进程可以同时运行,实现多任务处理。 3. **并发执行的抽象**:从理论上看,进程是运行中的程序抽象,从实现上讲,是...

    Linux进程管理.pdf

    本文深入剖析了Linux进程管理的相关概念和技术。 首先,进程控制块(task_struct)是Linux中描述进程的关键数据结构,包含了进程的所有状态和信息。每个进程都有一个唯一的进程ID(pid)和进程组ID(pgrp),用于识别和...

    Linux文件系统.pdf

    论文中提到的open和close操作是文件操作的基础,open用于获取文件描述符,而close用于释放资源。 7. EXT2文件系统 EXT2是专门为Linux设计的第一个扩展文件系统,具有较小的开销和良好的性能。虽然已被EXT4取代,但...

    linux文件共享服务汇总

    Linux 文件共享服务是将Linux系统中的文件和目录暴露给网络中的其他系统,以便进行数据交换和协作。在Linux中,有几种主要的文件共享服务,包括Samba、FTP(使用vsftpd)以及NFS(网络文件系统)。下面将详细介绍...

    linux使用lsof命令查看文件打开情况

    执行`lsof`命令会列出所有打开的文件,包括进程、用户、文件描述符、文件类型等信息。例如: ```bash $ lsof ``` #### 查找被删除但占用空间的文件 当一个大文件被删除但仍有进程使用时,它占用的空间不会立即...

    Linux下进程迁移机制的研究.pdf

    《Linux下进程迁移机制的研究》这篇文献主要探讨了在Linux操作系统中如何实现进程迁移及其恢复的技术。进程迁移是集群和分布式系统中的关键功能,它允许将正在运行的进程从一个计算节点移动到另一个节点,以便优化...

    Linux文件系统与进程.ppt

    文件I/O在Linux中是通过文件描述符进行的,它是一个非负整数,代表进程访问文件的唯一标识。系统调用如`open()`用于打开或创建文件,可以设置不同的标志(如O_RDONLY、O_WRONLY、O_RDWR)以指定访问模式。`O_APPEND`...

    高效与精细的结合——Linux的进程管理.pdf

    在Linux中,进程切换涉及到从一个进程的上下文到另一个进程上下文的转变,包括寄存器状态、内存映射、文件描述符等信息的保存和恢复。Linux通过精心设计的内核数据结构和算法,如调度器(scheduler)和时间片轮转,...

Global site tag (gtag.js) - Google Analytics