linux 误删除 进程,利用文件(占用进程)描述符恢复误删的文件

利用文件(占用进程)描述符恢复误删的文件

(ps:即该文件在启动时会被进程调用,或者有进程调用该文件。例如:某服务在执行时都会写日志文件,而日志文件就会被一些进程调用用于记录日志。)

现在我们模拟文件(占用进程)被误删的状态:[root@Manager ~]# echo 123123 > a.txt

[root@Manager ~]# cat a.txt

123123

[root@Manager ~]# tail -f a.txt

123123

(使用tail -f 一直监控该文件,这样当前文件就会有一个进程。)

另起一个窗口,删除该文件[root@Manager~]# rm -f a.txt

[root@Manager ~]# ls|grep a.txt

现在已经确认该文件被删除。

然后我们找回该文件[root@Manager ~]# ps -ef|grep tail

root       1674   1174 0 03:29 pts/1    00:00:00 tail -fa.txt

root       1719   1633 0 03:38 pts/2    00:00:00 grep--color=auto tail

[root@Manager ~]# lsof|grep delete

bash      1174    root   6w      REG                8,3        9     34549 /root/a.txt (deleted)

tail      1674    root   6w      REG                8,3        9     34549 /root/a.txt (deleted)

tail      1674    root   7r      REG                8,3        7      4066 /root/a.txt (deleted)

[root@Manager ~]# cat /proc/1674/fd/7

123123

这样,我们就找到了删除的文件内容,然后只要复制粘贴到文件中,就ok了。

查找位置就是/proc/内tail的进程号1674的目录里的fd(文件描述符文件夹)里的7(文件描述符号),即/proc/1674/fd/7文件就是该进程调用刚才创建文件的内容,这样就找回了刚才误删的文件内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值