本文记录使用lsof实现对linux文件的误删除恢复练习。题目如下:
1.确保当前nginx进程运行中
2.删除日志文件,rm -f /var/log/nginx/access.log
3.以lsof命令的帮助,恢复该日志数据

确保当前nginx进程运行中
[root@master10 ~]# systemctl status nginx

查看nginx日志文件
[root@master10 ~]# tail /var/log/nginx/access.log

模拟误删日志文件
[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]

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

4.恢复此文件描述符的数据,到日志文件即可完成文件恢复
[root@master10 fd]# cat 5 > /var/log/nginx/access.log [root@master10 fd]# cat /var/log/nginx/access.log

链接:https://www.cnblogs.com/funlyp/p/18351218
-
数据
+关注
关注
8文章
7310浏览量
93763 -
Linux
+关注
关注
88文章
11594浏览量
217461
原文标题:linux使用lsof恢复误删除的nginx日志
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
误删除文件恢复工具FinalData_3.0.8.1201_XiaZaiBa
在Linux上恢复误删除的文件或目录的小妙招
服务器数据恢复-LINUX下误删除/格式化的数据恢复方案
分布式数据恢复-hbase+hive分布式存储误删除文件的数据恢复方案
服务器数据恢复—误删除KVM虚拟机的数据恢复案例
Oracle数据恢复—Oracle删除数据不用怕!这些数据恢复方法了解一下
NetApp数据恢复—NetApp存储误删除的数据恢复案例
服务器数据恢复—EXT3文件系统下误删除数据的恢复案例

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