linux磁碟空間暫滿問題排查與處理

2021-08-10 15:03:01 字數 1769 閱讀 7541

在linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序開啟了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間占用100%,整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間,

在linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序開啟了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間占用100%,整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間,兩者是無法匹配的,可能df顯示磁碟100%,而du查詢目錄的磁碟容量占用卻很小。

遇到這種情況,基本可以斷定是某些大檔案被某些程式占用了,並且這些大檔案已經被刪除了,但是對應的檔案控制代碼沒有被某些程式關閉,造成核心無法收回這些檔案占用的空間。

那麼,如何查詢那些檔案被某些程式占用呢:12

3lsof -n | grep deleted

command     pid      user   fd      type             device        size       node name

dd        31708      higkoo    1w      reg                8,2 5523705856     429590 /data/filetest (deleted)

命令:lsof -n| grep deleted列印出所有針對已刪除檔案的讀寫操作,這類操作是無效的,也正是磁碟空間莫名消失的根本原因。

解決辦法:kill -9 pid   ----只需把程序刪掉就能釋放空間

lsof `which httpd` //那個程序在使用apache的可執行檔案

lsof /etc/passwd //那個程序在占用/etc/passwd

lsof /dev/hda6 //那個程序在占用hda6

lsof /dev/cdrom //那個程序在占用光碟機

lsof -c sendmail //檢視sendmail程序的檔案使用情況

lsof -c courier -u ^zahn //顯示出那些檔案被以courier打頭的程序開啟,但是並不屬於使用者zahn

lsof -p 30297 //顯示那些檔案被pid為30297的程序開啟

lsof -d /tmp 顯示所有在/tmp資料夾中開啟的instance和檔案的程序。但是symbol檔案並不在列

lsof -u1000 //檢視uid是100的使用者的程序的檔案使用情況

lsof -utony //檢視使用者tony的程序的檔案使用情況

lsof -u^tony //檢視不是使用者tony的程序的檔案使用情況(^是取反的意思)

lsof -i //顯示所有開啟的埠

lsof -i:80 //顯示所有開啟80埠的程序

lsof -i -u //顯示所有開啟的埠和unix domain檔案

lsof -i udp@[url]www.akadia.com:123 //顯示那些程序開啟了到www.akadia.com的udp的123(ntp)埠的鏈結

lsof -i [email protected]:ftp -r //不斷檢視目前ftp連線的情況(-r,lsof會永遠不斷的執行,直到收到中斷訊號,+r,lsof會一直執行,直到沒有檔案被顯示,預設是15s重新整理)

lsof -i [email protected]:ftp -n //lsof -n 不將ip轉換為hostname,預設是不加上-n引數

`lsof|grep delete|awk ''|sed 's/^/kill -9 /g'`

Linux 磁碟空間排查

場景 整個部門的所有業務系統都部署到了同一臺測試機上,然後產生大量日誌檔案後,並且都是保留了30天,導致各業務系統癱瘓。排查步驟 1 df h 檢視磁碟使用情況 2 du h max depth 1 目錄全路徑 檢視指定目錄下各資料夾 檔案 占用空間的大小 3 找到占用比較大的檔案,並且可以刪除的檔...

磁碟空間滿的問題

kinux os pc 出現磁碟空間不足問題有 導致該問題的可能原因包括 執行df h檢視磁碟使用 以及使用du sh 檢視 分析根目錄下每個目錄下面有多少個檔案。fori in doecho i find i wc l done df i 檢視實際inode 命令 命令重新建立檔案系統,指定ino...

排查磁碟空間

排查目錄的大檔案 一利用inode 排查 涉及用到命令 du sh 報告磁碟空間使用情況 s summarize 對每個引數只顯示總和 h separate dirs 單獨報告每乙個目錄的大小,不包括子目錄的大小 代表是哪個目錄 代表所有 這裡舉乙個簡單例子,block滿了 這裡我模擬了乙個環境,在...