原理:在Linux系统的/proc 分区下保存着进程的目录和名字,包含fd(文件描述符)和其下的子目录(进程打开文件的链接),那么如果删除了一个文件,还存在一个 inode的引用:/proc/进程号/fd/文件描述符。我们只要知道当前打开文件的进程pid和文件描述符fd就能利用lsof工具列出进程打开的文 件。
一、将 ls 的手册过滤掉主要控制符后重定向到文件ls.txt 中,并用more查看,CTRL + Z 暂停查看操作
1: [[email protected] script]# man ls |col -b > ls.txt
2: [[email protected] script]# more ls.txt
3: LS(1) User Commands LS(1)
4:
1: [1]+ Stopped more ls.txt
2: [[email protected] script]#
3: [[email protected] script]# jobs
4: [1]+ Stopped more ls.txt
5:
二、假设误删文件 ls.txt
1: [[email protected] script]# rm ls.txt
2: rm:是否删除 一般文件 “ls.txt”? y
三、利用lsof找到进程6511、并拷贝恢复,只能在这个文件被使用或调用的情况下有效
3: [[email protected] script]# lsof |grep ls.txt
4: more 6511 root 3r REG 253,0 7300 1083699 /opt/script/ls.txt (deleted)
5:
1: [[email protected] script]# ls -l /proc/6511/fd/
2: 0 1 2 3
3: [[email protected] script]# ls -l /proc/6511/fd/3
4: lr-x------ 1 root root 64 10-30 21:21 /proc/6511/fd/3 -> /opt/script/ls.txt (deleted)
5:
1: cp /proc/6511/fd/3 ls.txt.saved
恢复误删的进程在使用的文件
时间: 2024-10-13 07:07:57
恢复误删的进程在使用的文件的相关文章
利用文件(占用进程)描述符恢复误删的文件
(ps:即该文件在启动时会被进程调用,或者有进程调用该文件.例如:某服务在执行时都会写日志文件,而日志文件就会被一些进程调用用于记录日志.) 现在我们模拟文件(占用进程)被误删的状态: [[email protected] ~]# echo 123123 > a.txt [[email protected] ~]# cat a.txt 123123 [[email protected] ~]# tail -f a.txt 123123 (使用tail -f 一直监控该文件,这样当前文件就会有一
利用winhex恢复误删文件
无意中发现一款软件winhex,没想到竟然还有恢复误删文件的功能.下面让我演示如何操作吧! 首先,下载这款软件的压缩包,解压就好了,目录下有个winhex.exe,直接点击就可以运行了,如果你想删除winhex软件,容易,把整个解压的目录删除掉就OK了! 运行界面 首先,我在D盘建了个文件夹叫"测试",再建立一个文本文档叫123.txt(反正就演示,取名简单点)再瞎写些内容,保存后直接删掉,我使用的是360强力删除,也就是永久性删除,在回收站找不到的. 到此,准备工作完成. 在已经打开
git多人合作时,恢复误删文件
一开始比较慌,下意识里就想到用reset和push -f重置版本并强制推送到远程库,经过实验发现这样做只能保证自己的本地库和远程库回到之前一个版本,而其他人想通过git pull同步是无效的,远程库版本已经低于其他人的本地库版本,这时候难道让其他人都删除版本库重新从远程库克隆?得不偿失. 然后就想,能不能从之前的版本中检出这个文件,然后重新添加到版本库中?再作为一个新的提交来挽救? 经实验室可以的,过程如下: git checkout HEAD^ -- a.txt HEAD^ 代表上一次提交,
恢复误删文件
恢复误删除文件 在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载.这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天.所以!以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据
硬盘误删除文件恢复工具,怎样恢复误删文件
硬盘误删除文件恢复工具,硬盘是个最为常见的数据存储设备了,不管是电脑上的硬盘还是移动硬盘,其中的重要文件都非常之多,如果在执行文件操作的时候不小心误删了文件该怎么恢复呢? 如果说在电脑上对文件执行的普通删除的话,那么可以到回收站中查看是否有相关的文件存在,如果有的话进行还原操作即可,如果未找到的话,可以通过下述的方式来进行恢复工作的哦. 教程一:互盾数据恢复软件 第一步:打开常用电脑的浏览器找到[互盾数据恢复软件]的安装包,之后点击[立即安装]完成后续的恢复工作. 第二步:之后运行软件,界面上有
浅析Linux文件(一)inode与block、硬链接与软链接、恢复误删文件
一.inode与block 1.inode和block概述 文件数据包括元信息与实际数据,一个文件必须占用一个inode,但至少占用一个block. 扇区:文件存储在硬盘上,硬盘的最小存储单位是扇区,每个扇区存储空间是512字节.block(块):连续的八个扇区组成一个block,block是文件存取的最小单位,用来存储文件数据.inode(索引节点):也叫i节点,用于存储文件元信息. 2.inode的理解 (1)inode包含文件元信息: 文件的字节数 文件拥有者的User ID(UID) 文
inode实操走起、恢复误删xfs文件
一.inode实练走起 1.ls -i可看到文件的inode名,stat 123.txt命令可看出权限.inode号.硬链接.三次访问时间都能看到.2.给123文本新建链接abc文本,用stat 123.txt命令查看,硬链接数立马更改为23.文本和硬链接的inode号一致,即硬链接为文本的别名(软链接两个inode号即不同)4.查看456文件的详情,用file命令可看文本格式.目录形式5.df -i命令可看出所有文件系统一共拥有的inode号,以及可用的inode号6.新添加一个sdb磁盘,给
如何恢复被删除的word自动保存文件,也就是恢复文件
如何恢复被删除的word自动保存文件,也就是恢复文件 1.恢复误删文件 利用文件恢复工具,如360文件恢复,恢复所误删文件,格式为.asd. 具体:利用你的文件名进行搜索,找到后缀.ASD的文件,文件名((Autosaved-304379081592903232)).asd 2.移动文件 用word 2007恢复不了,提示格式不能支持,不过用word 2010就可以恢复了. 所以你应该安装一个10的office,然后把这个文件复制到那个未保存的文件那个目录下. 例如我的目录是这样:C:\User
利用 BBED 恢复非归档模式下 OFFLINE 数据文件
今天来模拟一个非归档模式下恢复OFFLINE数据文件的场景,主要有2种情况: 一种是在线日志没有被覆盖,另一种是在线日志被覆盖. 第一种情况比较简单,数据库自身就能处理,而第二种情况稍显复杂,但也并不难,下面开始整个实验过程: 一.在线日志没有被覆盖的场景 --切换数据库到非归档模式 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destina