在
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----
只需把程序刪掉就能釋放空間
那個程序在使用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引數
處理Linux系統下已刪除檔案繼續占用空間問題
在linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序開啟了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間占用100 整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間,兩者是無法匹配的,可能df顯示磁碟...
LINUX 系統下刪除已安裝程式命令
一 二進位制分發軟體包的安裝與解除安裝 linux軟體的二進位制分發是指事先已經編譯好二進位制形式的軟體包的發布形式,其優點是安裝使用容易,缺點則是缺乏靈活性,如果該軟體包是為特定的硬體 作業系統平台編譯的,那它就不能在另外的平台或環境下正確執行。1 rpm形式的二進位制軟體包 安裝 rpm ivh...
linux系統下增加 刪除swap檔案
方式1 如果返回為空,表示swap檔案不存在,在嵌入式系統上該命令可能不支援 swapon s filename type size used priority swapfile file 2097148 1307180 2方式2 cat proc swaps filename type size ...