0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用lsof实现对linux文件的误删除恢复练习

马哥Linux运维 来源:马哥Linux运维 2024-11-24 11:14 次阅读

本文记录使用lsof实现对linux文件的误删除恢复练习。题目如下:

1.确保当前nginx进程运行中

2.删除日志文件,rm -f /var/log/nginx/access.log

3.以lsof命令的帮助,恢复该日志数据

304e3194-a65b-11ef-93f3-92fbcf53809c.png

确保当前nginx进程运行中

[root@master10 ~]# systemctl status nginx

3063c4b4-a65b-11ef-93f3-92fbcf53809c.png

查看nginx日志文件

[root@master10 ~]# tail /var/log/nginx/access.log

306ca020-a65b-11ef-93f3-92fbcf53809c.png

模拟误删日志文件

[root@master10 ~]# rm -f /var/log/nginx/access.log
[root@master10 ~]# tail /var/log/nginx/access.log
tail: cannot open ‘/var/log/nginx/access.log’ for reading: No such file or directory

以lsof命令的帮助,恢复该日志数据

1.lsof查看关于该日志的进程

[root@master10 ~]# lsof | grep /var/log/nginx/access.log
nginx     1439         root    5w      REG              253,0      1524   17117944 /var/log/nginx/access.lo (deleted)
nginx     1440        nginx    5w      REG              253,0      1524   17117944 /var/log/nginx/access.lo (deleted)
nginx     1441        nginx    5w      REG              253,0      1524   17117944 /var/log/nginx/access.lo (deleted)

可以看到,nginx主进程号为1439,因为nginx进程没有退出,该文件描述符还未被释放,所以还是可以恢复的,仔细看行末文件名多了一个deleted被删除的标记

2.此时进入linux中一个管理所有进程的目录,/proc,找到对应的进程id目录(父亲进程id),进入其管理文件描述符的地方。

[root@master10 fd]# cd ~
[root@master10 ~]# cd /proc/1439/fd
[root@master10 fd]# ll
total 0
lrwx------. 1 root root 64 Aug  9 17:26 0 -> /dev/null
lrwx------. 1 root root 64 Aug  9 17:26 1 -> /dev/null
lrwx------. 1 root root 64 Aug  9 17:26 10 -> socket:[22591]
l-wx------. 1 root root 64 Aug  9 17:26 2 -> /var/log/nginx/error.log
lrwx------. 1 root root 64 Aug  9 17:26 3 -> socket:[22588]
l-wx------. 1 root root 64 Aug  9 17:26 4 -> /var/log/nginx/error.log
l-wx------. 1 root root 64 Aug  9 17:26 5 -> /var/log/nginx/access.log (deleted)
lrwx------. 1 root root 64 Aug  9 17:26 6 -> socket:[22522]
lrwx------. 1 root root 64 Aug  9 17:26 7 -> socket:[22523]
lrwx------. 1 root root 64 Aug  9 17:26 8 -> socket:[22589]
lrwx------. 1 root root 64 Aug  9 17:26 9 -> socket:[22590]

3083ad4c-a65b-11ef-93f3-92fbcf53809c.png


3.我们看到的这个5软连接文件,就是对应的刚刚误删掉的access.log文件,使用cat命令查看5

308f2e38-a65b-11ef-93f3-92fbcf53809c.png


4.恢复此文件描述符的数据,到日志文件即可完成文件恢复

[root@master10 fd]# cat 5 > /var/log/nginx/access.log
[root@master10 fd]# cat /var/log/nginx/access.log

30a05cd0-a65b-11ef-93f3-92fbcf53809c.png

链接:https://www.cnblogs.com/funlyp/p/18351218

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6886

    浏览量

    88818
  • Linux
    +关注

    关注

    87

    文章

    11224

    浏览量

    208902

原文标题:linux使用lsof恢复误删除的nginx日志

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    右侧栏的library误删除了,怎么还原?

    右侧栏的library误删除了,怎么还原?
    发表于 12-17 15:51

    怎么恢复U盘误删的文档word,excel文件

    ,选择误删恢复功能。  2、我们需要选择删除文件所在的硬盘,然后点击“开始扫描”选项。  3、接下来软件就会对我们所选的硬盘进行深度扫描了,等待软件扫描完成之后,我们即可进行接下来的
    发表于 06-06 15:41

    Linux文件系统被误删档怎么恢复

    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在档节点中作
    发表于 10-16 07:22

    误删除文件恢复工具FinalData_3.0.8.1201_XiaZaiBa

    电子发烧友网站提供《误删除文件恢复工具FinalData_3.0.8.1201_XiaZaiBa.exe》资料免费下载
    发表于 10-11 23:43 13次下载

    Linux恢复误删除文件或目录的小妙招

    。这里分别简单介绍一下。 一、误删除文件进程还在的情况 这种一般是有活动的进程存在持续标准输入或输出,到时文件删除后,进程PID还是存在。这也就是有些服务器
    的头像 发表于 11-18 11:33 6845次阅读

    服务器误删除邮件数据的数据恢复案例

    服务器数据恢复环境: 8块盘组成的RAID5磁盘阵列; EXT3文件系统。 服务器故障: 由于误删除导致文件系统中的邮件丢失。
    的头像 发表于 09-22 11:26 1300次阅读
    服务器<b class='flag-5'>误删除</b>邮件数据的数据<b class='flag-5'>恢复</b>案例

    【服务器数据恢复LINUX误删除、误格式化怎么恢复数据?

    Linux误删除及误格式化的数据恢复方案针对的文件系统。
    的头像 发表于 11-23 11:34 1938次阅读

    linux误删文件后的恢复方法

    对于linux误删文件,我们是否真的无法通过软件进行恢复呢?
    的头像 发表于 02-09 09:51 2334次阅读

    服务器数据恢复-LINUX误删除/格式化的数据恢复方案

    服务器数据恢复环境: 基于EXT2/EXT3/EXT4/Reiserfs/Xfs文件系统的Linux操作系统。 服务器故障: LINUX操作系统下
    的头像 发表于 09-15 15:29 906次阅读

    分布式数据恢复-hbase+hive分布式存储误删除文件的数据恢复方案

    。 hbase+hive分布式存储故障&初检: 数据库文件误删除,数据库无法使用。 通过现场对该分布式环境的初步检测,发现虚拟机还可以正常启动,虚拟机里面的数据库块文件丢失。好在块
    的头像 发表于 11-24 15:55 408次阅读

    服务器数据恢复—KVM虚拟机raw格式磁盘文件数据恢复案例

    : 工作人员操作失误删除了服务器上的3台KVM虚拟机,虚拟机中运行数据库,需恢复误删除虚拟机中raw格式的磁盘文件
    的头像 发表于 05-17 13:33 410次阅读
    服务器数据<b class='flag-5'>恢复</b>—KVM虚拟机raw格式磁盘<b class='flag-5'>文件</b>数据<b class='flag-5'>恢复</b>案例

    服务器数据恢复误删除KVM虚拟机的数据恢复案例

    1台服务器,Linux操作系统+EXT4文件系统,部署了数台KVM虚拟机,每台虚拟机包含一个qcow2格式的磁盘文件,和一个raw格式的磁盘文件。 工作人员操作失
    的头像 发表于 06-17 15:10 324次阅读
    服务器数据<b class='flag-5'>恢复</b>—<b class='flag-5'>误删除</b>KVM虚拟机的数据<b class='flag-5'>恢复</b>案例

    Oracle数据恢复—Oracle删除数据不用怕!这些数据恢复方法了解一下

    相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程
    的头像 发表于 07-19 16:40 463次阅读

    NetApp数据恢复—NetApp存储误删除的数据恢复案例

    某公司一台NetApp存储,该存储中有24块磁盘。 工作人员误删除了NetApp存储中一个文件夹,文件夹中有非常重要的数据。 数据恢复工程师在现场对该存储进行了初检。虽然这个
    的头像 发表于 08-12 13:35 224次阅读
    NetApp数据<b class='flag-5'>恢复</b>—NetApp存储<b class='flag-5'>误删除</b>的数据<b class='flag-5'>恢复</b>案例

    服务器数据恢复—EXT3文件系统下误删除数据的恢复案例

    服务器数据恢复环境: 邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统+EXT3文件系统。 服务器故障: 由于误删除导致
    的头像 发表于 10-23 15:11 127次阅读
    服务器数据<b class='flag-5'>恢复</b>—EXT3<b class='flag-5'>文件</b>系统下<b class='flag-5'>误删除</b>数据的<b class='flag-5'>恢复</b>案例