Linux如何檢視檔案開啟情況

2021-10-03 15:03:15 字數 2291 閱讀 4773

前言

在linux環境下,任何事物都以檔案的形式存在,這便產生了一句格言:「一切皆檔案」,通過lsof命令便能檢視檔案開啟情況。而lsof命令用於檢視你程序開打的檔案,開啟檔案的程序,程序開啟的埠(tcp、udp)等。

lsof可以開啟哪些檔案

1、普通檔案

2、目錄

3、網路檔案系統的檔案

4、字元或裝置檔案

5、共享庫

6、管道、命名管道

7、符號鏈結

8、網路檔案(例如:nfs file、網路socket,unix網域名稱socket)

lsof介紹lsof(list open files)是乙個檢視當前系統檔案的工具。在終端上輸入lsof,如果沒有安裝請自行yum install lsof或者apt-get install lsof。

lsof資訊太多,可以在終端加上lsof|more,more命令用於將內容較長的文字檔案內容進行分屏顯示,方便閱讀。

lsof輸出各列資訊的意義如下:

command:程序的名稱

pid:程序識別符號

user:程序的所屬組

fd:檔案描述符,應用程式通過檔案描述符識別該檔案。如cwd、txt等。

type:檔案型別,如dir、reg等

device:指定磁碟的名稱

size/off:檔案的大小

node:索引節點(檔案在磁碟上的標識)

name:開啟檔案的確切名稱

使用場景舉例列出被刪除但占用空間的檔案常常是由於某個大檔案被刪除了,但是它卻被某個程序開啟,導致通過普通的方式找不到它的蹤跡,最常見的就是日誌檔案,但是還可以通過lsof命令發現這樣的檔案:

恢復開啟但被刪除的檔案前面我們可以找到被刪除但是仍然被開啟的檔案,實際上檔案並沒有真正的消失,如果是意外被刪除的,我們還有手段恢復它。/var/log/messages檔案為例,我們先看一

下/var/log/messages檔案是什麼程序開啟的。

原先系統log目錄下的檔案:

此時,刪除檔案rm -f /var/log/messages,這是時候用ls檢視檔案已經不存在了。

然後使用lsof檢視那個程序開啟了該檔案:

這裡就找到了被刪除的messages檔案,檔案描述符是6,我們把它重定向出來:

這樣我們就恢復了messages檔案。

列出所有的網路連線

檢視與某個ip位址建立的連線

列出所有tcp 網路連線資訊

總結

本篇只對lsof功能的簡單介紹,要檢視完整參考,執行man lsof命令。

用lsof檢視程序開啟的檔案情況

lsof語法格式是 lsof options filenamelsof abc.txt 顯示開啟檔案abc.txt的程序 lsof c abc 顯示abc程序現在開啟的檔案 lsof c p 1234 列出程序號為1234的程序所開啟的檔案 lsof g gid 顯示歸屬gid的程序情況 lsof ...

linux下如何檢視多核負載情況

首先宣告出處 sam的技術blog 1.linux下,如何看每個cpu的使用率 top d 1 此時會顯示以1s的頻率重新整理系統負載顯示,可以看到總的cpu的負載情況,以及佔cpu最高的程序id,程序名字等資訊 切換按下數字1,則可以在顯示多個cpu和總cpu中切換 之後按下數字1.則顯示多個cp...

linux下檢視檔案開啟數

一 檢視資源限定 ulimit a 檢視系統目前資源限制的設定。二 修改資源限定 linux 開啟檔案控制代碼時可能出現 too many open files 的提示,可以修改linux的最大檔案控制代碼數限制 1 ulimit n 65535 在當前session有效,使用者退出或者系統重新後恢...