快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程安卓软件教程 → lsof命令恢复打开但被删除的文件

lsof命令恢复打开但被删除的文件

时间:2019-05-14 09:57:12人气:作者:快盘下载我要评论

在linux下,一切皆文件。

再linux下文件删除了。但是被某个进程打开,句柄还没有释放,文件其实还是没有被删除的 。


lsof |grep deleted
Xorg      1131 root  125u      REG                0,5        4      61026 /memfd:xshmfence (deleted)
Xorg      1131 root  126u      REG                0,5        4      62913 /memfd:xshmfence (deleted)
Xorg      1131 root  129u      REG                0,5        4      74609 /memfd:xshmfence (deleted)


恢复打开但被删除的文件

前面我们可以找到被删除但是仍然被打开的文件,实际上文件并没有真正的消失,如果是意外被删除的,我们还有手段恢复它。以/var/log/syslog文件为例,我们先删除它

rm /var/log/syslog


然后使用lsof查看那个进程打开了该文件:

$ lsof |grep syslog
rs:main    993 1119           syslog    5w      REG               8,10     78419     528470 /var/log/syslog (deleted)


可以找到进程id为993的进程打开了该文件,我们知道每个进程在/proc下都有文件描述符打开的记录:

$ ls -l /proc/993/fd
lr-x------ 1 root   root   64 3月   5 18:30 0 -> /dev/null
l-wx------ 1 root   root   64 3月   5 18:30 1 -> /dev/null
l-wx------ 1 root   root   64 3月   5 18:30 2 -> /dev/null
lrwx------ 1 root   root   64 3月   5 18:30 3 -> socket:[15032]
lr-x------ 1 root   root   64 3月   5 18:30 4 -> /proc/kmsg
l-wx------ 1 root   root   64 3月   5 18:30 5 -> /var/log/syslog (deleted)
l-wx------ 1 root   root   64 3月   5 18:30 6 -> /var/log/auth.log


这里就找到了被删除的syslog文件,文件描述符是5,我们把它重定向出来:


$ cat /proc/993/fd/5 > syslog
$ ls -al /var/log/syslog
-rw-r--r-- 1 root root 78493 3月   5 19:22 /var/log/syslog

这样我们就恢复了syslog文件。



相关文章

  • Linux配置HTTP服务

    Linux配置HTTP服务,配置Linux初级httpd服务...
  • Linux系统上安装Zookeeper

    Linux系统上安装Zookeeper,Zookeeper的安装:第一步:安装jdk(必须先安装jdk,否则启动不成功)第二步:解压缩zookeeper压缩包第三步:将conf文件夹下zoo_sample.cfg复制一份,改名为zoo.cfg第四步:修改配置dataDir属性,指定一个真实目录(进入zookeeper解压目录,创建data目录:mkdirdata)  第五步:启动zookeeper:bin/zkSe...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。