学无先后,达者为师

网站首页 编程语言 正文

使用lsof命令恢复已删除文件(正在使用的文件)

作者:互联网-小阿宇 更新时间: 2022-04-01 编程语言

此方法适用于正在使用的文件 ,且被删除后,可以通过lsof的方式进行恢复。
演示:

[root@master ~]# less /var/log/messages

在这里插入图片描述
开启另一个终端进行删除操作

[root@master ~]# rm -rf /var/log/messages
[root@master ~]# cat /var/log/messages
cat: /var/log/messages: 没有那个文件或目录

这个时候不要慌,第一个终端less还是可以正常浏览文件的
准备进行恢复文件
如果提示没有lsof命令就安装

yum -y install lsof
[root@master ~]# lsof | grep deleted
rsyslogd   9420          root    6w      REG              253,0   1655588   17390930 /var/log/messages (deleted)
in:imjour  9420  9442    root    6w      REG              253,0   1655588   17390930 /var/log/messages (deleted)
rs:main    9420  9470    root    6w      REG              253,0   1655588   17390930 /var/log/messages (deleted)
less      10295          root    4r      REG              253,0   1655437   17121932 /var/log/messages (deleted)

可以清楚的看到在最后一行代表这个less正在占用这个文件但是已经被删除了
在这里插入图片描述
记住这两个数字:第一个红框代表的是PID 第二个红框记住这个数字就行了 不需要字母

[root@master ~]# cat /proc/10295/fd/4

在这里插入图片描述
你会神奇的发现着就是你刚刚删除的文件
直接复制一份还原回去

[root@master ~]# cp /proc/10295/fd/4 /var/log/messages
[root@master ~]# ll /var/log/messages
-rw------- 1 root root 1655437 331 14:58 /var/log/messages

原文链接:https://blog.csdn.net/weixin_46152207/article/details/123872203

栏目分类
最近更新