IT技术互动交流平台

使用lsof恢复rm -rf删除后的文件

作者:一起走过的日子  来源:IT165收集  发布日期:2016-06-14 22:05:48

     在Linux系统中使用rm -rf删除文件后,其实文件只是从磁盘中移除,文件内容还是在系统后台等待回收,此时可以使用系统进程号将文件考贝出来,内容不会有更改。


1.删除一个文件

[root@iZ62f427er8Z logs]# ll access.log
-rw-r--r-- 1 root root 11723908 Jun 14 16:02 access.log
[root@iZ62f427er8Z logs]# rm -rf access.log


2.查看文件在后台的进程
[root@iZ62f427er8Z logs]# lsof  | grep delete | grep access
nginx      1212   root    9u   REG  202,1   11723908   274125 /usr/local/nginx-1.4.7/logs/access.log (deleted)
nginx     12953     www    9w   REG  202,1   11723908   274125 /usr/local/nginx-1.4.7/logs/access.log (deleted)
nginx     12954    www  9w   REG     202,1   11723908     274125 /usr/local/nginx-1.4.7/logs/access.log (deleted)
[root@iZ62f427er8Z logs]#

3.将文件从进程中复制到磁盘上

[root@iZ62f427er8Z logs]# cp /proc/12953/fd/9  .     #12953是进程号,9是文件描述符
[root@iZ62f427er8Z logs]# du -sh 9
12M    9
[root@iZ62f427er8Z logs]# cat 9        #文件内容看到了


Tag标签: 文件  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规