码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-09-09 19:40:10      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:误删文件 文件描述符

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

    (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文件就是该进程调用刚才创建文件的内容,这样就找回了刚才误删的文件内容。


本文出自 “菜鸟的Linux历程” 博客,请务必保留此出处http://jackdady.blog.51cto.com/8965949/1693214

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

标签:误删文件 文件描述符

原文地址:http://jackdady.blog.51cto.com/8965949/1693214

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!