本文記錄使用lsof實(shí)現(xiàn)對(duì)linux文件的誤刪除恢復(fù)練習(xí)。題目如下:
1.確保當(dāng)前nginx進(jìn)程運(yùn)行中
2.刪除日志文件,rm -f /var/log/nginx/access.log
3.以lsof命令的幫助,恢復(fù)該日志數(shù)據(jù)
確保當(dāng)前nginx進(jìn)程運(yùn)行中
[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命令的幫助,恢復(fù)該日志數(shù)據(jù)
1.lsof查看關(guān)于該日志的進(jìn)程
[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主進(jìn)程號(hào)為1439,因?yàn)閚ginx進(jìn)程沒(méi)有退出,該文件描述符還未被釋放,所以還是可以恢復(fù)的,仔細(xì)看行末文件名多了一個(gè)deleted被刪除的標(biāo)記
2.此時(shí)進(jìn)入linux中一個(gè)管理所有進(jìn)程的目錄,/proc,找到對(duì)應(yīng)的進(jìn)程id目錄(父親進(jìn)程id),進(jìn)入其管理文件描述符的地方。
[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.我們看到的這個(gè)5軟連接文件,就是對(duì)應(yīng)的剛剛誤刪掉的access.log文件,使用cat命令查看5
4.恢復(fù)此文件描述符的數(shù)據(jù),到日志文件即可完成文件恢復(fù)
[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
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7030瀏覽量
89034 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209499
原文標(biāo)題:linux使用lsof恢復(fù)誤刪除的nginx日志
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論