久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux如何利用lsof命令恢復(fù)刪除的文件

153次閱讀
沒有評論

共計 3540 個字符,預(yù)計需要花費 9 分鐘才能閱讀完成。

這篇文章主要介紹 Linux 如何利用 lsof 命令恢復(fù)刪除的文件,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

lsof 命令

lsof 命令用于查看你進程開打的文件,打開文件的進程,進程打開的端口 (TCP、UDP)。找回 / 恢復(fù)刪除的文件。是十分方便的系統(tǒng)監(jiān)視工具,因為 lsof 命令需要訪問核心內(nèi)存和各種文件,所以需要 root 用戶執(zhí)行。

在 linux 環(huán)境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報協(xié)議  (UDP)   套接字等,系統(tǒng)在后臺都為該應(yīng)用程序分配了一個文件描述符,無論這個文件的本質(zhì)如何,該文件描述符為應(yīng)用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口。因為應(yīng)用程序打開文件的描述符列表提供了大量關(guān)于這個應(yīng)用程序本身的信息,因此通過 lsof 工具能夠查看這個列表對系統(tǒng)監(jiān)測以及排錯將是很有幫助的。

語法

lsof(選項)

參數(shù)

-a:列出打開文件存在的進程;

-c 進程名:列出指定進程所打開的文件;

-g:列出 GID 號進程詳情;

-d 文件號:列出占用該文件號的進程;

+d 目錄:列出目錄下被打開的文件;

+D 目錄:遞歸列出目錄下被打開的文件;

-n 目錄:列出使用 NFS 的文件;

-i 條件:列出符合條件的進程。(4、6、協(xié)議、: 端口、@ip)

-p 進程號:列出指定進程號所打開的文件;

-u:列出 UID 號進程詳情;

-h:顯示幫助信息;

-v:顯示版本信息。

使用

查看

lsof -i:(端口) 查看這個端口有那些進程在訪問,比如 22 端口

shell  lsof -i:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1939 root 3u IPv4 12317 0t0 TCP *:ssh (LISTEN) sshd 1939 root 4u IPv6 12321 0t0 TCP *:ssh (LISTEN) sshd 2790 root 3u IPv4 15229 0t0 TCP 192.168.178.128:ssh- 192.168.178.1:64601 (ESTABLISHED) sshd 2824 root 3u IPv4 15528 0t0 TCP 192.168.178.128:ssh- 192.168.178.1:64673 (ESTABLISHED) sshd 2990 root 3u IPv4 15984 0t0 TCP 192.168.178.128:ssh- 192.168.178.1:64686 (ESTABLISHED) sshd 14695 root 3u IPv4 39558 0t0 TCP 192.168.178.128:ssh- 192.168.178.1:49662 (ESTABLISHED)

lsof 輸出各列信息的意義如下:

COMMAND:進程的名稱

PID:進程標(biāo)識符

USER:進程所有者

FD:文件描述符,應(yīng)用程序通過文件描述符識別該文件。如 cwd、txt 等

TYPE:文件類型,如 DIR、REG 等

DEVICE:指定磁盤的名稱

SIZE:文件的大小

NODE:索引節(jié)點 (文件在磁盤上的標(biāo)識)

NAME:打開文件的確切名稱

恢復(fù)文件

利用 lsof 可以恢復(fù)一些系統(tǒng)日志,前提是這個進程必須存在。這里就拿最常用的 /var/log/messages 來舉例說明,大家在做測試的時候 *** 先備份一下。

# 備份 shell  cp /var/log/message /var/log/message_bac http://embeddedlinux.org.cn/ shell  lsof |grep /var/log/message rsyslogd 1737 root 1w REG 8,2 5716123 652638 /var/log/messages

進程在運行中,接下來我就把 /var/log/messages 這個文件刪掉

shell  rm /var/log/messages

刪掉之后,我再來看看這個進程的變化

shell  lsof |grep /var/log/messages rsyslogd 1737 root 1w REG 8,2 5716123 652638 /var/log/messages (deleted)

大家看到有變化了吧,對比兩個之后發(fā)現(xiàn)多了 (deleted)。要找到這個文件在哪還要看看這個

PID:1737 FD:1 那我們有直接進入 /proc/1737/FD/ 1 用 ll 查看一下

shell  cd /proc/1737/fd/ shell  ll total 0 lrwx------ 1 root root 64 Dec 23 13:00 0 -  socket:[11442] l-wx------ 1 root root 64 Dec 23 13:00 1 -  /var/log/messages (deleted) l-wx------ 1 root root 64 Dec 23 13:00 2 -  /var/log/secure lr-x------ 1 root root 64 Dec 23 13:00 3 -  /proc/kmsg l-wx------ 1 root root 64 Dec 23 13:00 4 -  /var/log/maillog

看到了 1 對應(yīng) /var/log/messages (deleted),看看文件是不是我們要的文件:

shell  head -5 1 Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. Nov 14 03:11:11 localhost rsyslogd: [origin software= rsyslogd  swVersion= 5.8.10  x-pid= 1241  x-info= http://www.rsyslog.com] start Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.CentOS.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

對比備份文件:

shell  head -5 /var/log/message_bac Nov 14 03:11:11 localhost kernel: imklog 5.8.10, log source = /proc/kmsg started. Nov 14 03:11:11 localhost rsyslogd: [origin software= rsyslogd  swVersion= 5.8.10  x-pid= 1241  x-info= http://www.rsyslog.com] start Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpuset Nov 14 03:11:11 localhost kernel: Initializing cgroup subsys cpu Nov 14 03:11:11 localhost kernel: Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

對比發(fā)現(xiàn)數(shù)據(jù)是一樣的,恢復(fù)

shell  cat 1   /var/log/messages

再次提醒,恢復(fù)前提是這個進程必須存在。

以上是“Linux 如何利用 lsof 命令恢復(fù)刪除的文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計3540字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 中宁县| 格尔木市| 甘德县| 四会市| 淄博市| 银川市| 广河县| 沂南县| 黄冈市| 遂平县| 恩平市| 兴文县| 繁昌县| 嘉义市| 平阴县| 大名县| 微山县| 玉树县| 嵊泗县| 封开县| 嵩明县| 务川| 五河县| 湖口县| 兴山县| 晋宁县| 东源县| 奎屯市| 南涧| 汽车| 张北县| 嘉峪关市| 民和| 海原县| 美姑县| 保靖县| 永泰县| 宣城市| 察雅县| 鹰潭市| 高雄市|