本文記錄使用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文章
7224瀏覽量
90196 -
Linux
+關注
關注
87文章
11380瀏覽量
211353
原文標題:linux使用lsof恢復誤刪除的nginx日志
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
怎么恢復U盤誤刪的文檔word,excel文件
誤刪除文件恢復工具FinalData_3.0.8.1201_XiaZaiBa
在Linux上恢復誤刪除的文件或目錄的小妙招
服務器數據恢復-LINUX下誤刪除/格式化的數據恢復方案
分布式數據恢復-hbase+hive分布式存儲誤刪除文件的數據恢復方案
服務器數據恢復—誤刪除KVM虛擬機的數據恢復案例

Oracle數據恢復—Oracle刪除數據不用怕!這些數據恢復方法了解一下
NetApp數據恢復—NetApp存儲誤刪除的數據恢復案例

服務器數據恢復—EXT3文件系統下誤刪除數據的恢復案例

評論