當你的 linux 系統無法建立新檔案時,有可能是你的磁碟滿了,還有可能是你的磁碟的 inode 用光了,我們今天要說的就是後一種情況,要解決這個問題,只能是刪除一些檔案,但是一般情況下,其實是你的系統中的某個地方產生了大量的你並不需要的檔案,你要做的就是找到他們並刪除就可以了,我並不是讓你刪除你有用的檔案,因為你一般不會有那麼多有用的檔案來把系統的 inode 用光。
什麼是 inode ?
檔案儲存在硬碟上,硬碟的最小儲存單位叫做」扇區」(sector)。每個扇區儲存512位元組(相當於0.5kb)。
作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個」塊」(block)。這種由多個扇區組成的」塊」,是檔案訪問的最小單位。」塊」的大小,最常見的是4kb,即連續八個 sector組成乙個 block。
檔案資料都儲存在」塊」中,那麼很顯然,我們還必須找到乙個地方儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為」索引節點」。
每乙個檔案都有對應的inode,裡面包含了與該檔案有關的一些資訊。
如何檢視系統的 innode 占用情況
df-ih
如何查詢那個目錄下檔案最多
首先切到根目錄 /cd
/然後執行
fori
in/*; do echo
$i; find
$i| wc -l; done
或者for
i in
`ls -
1a | grep -v
"\.\./"
| grep -v
"\./"
`; do
echo
"`find
$i| sort -u | wc -l` $i"
; done
| sort -rn | head -
10這樣會依次返回
/目錄下檔案最多的目錄,進入這個目錄,再執行上述命令,就這樣層層深入最終確定是那個目錄檔案最多
如何刪除那個目錄的的所有檔案
一般情況下,如果這個目錄下應該會有數以百萬的檔案,如果你直接用
rm -rf 目錄名
的話效率會很低,可以用下面方法
find
目錄 -
type
f-name
'*'-print0 | xargs -0rm
時間可能會比較久,所以你最好開乙個 screen 來處理
有可能是你遇到了下面的情況
/var/spool/postfix/maildrop 下面有很多檔案
為了避免,可以執行
crontab -e
在最開頭新增
mailto='"'
儲存,然後
server crond restart
重啟 crond
Linux檔案系統中的inode
磁碟中最小的儲存單位是 扇區 作業系統中檔案最小的儲存單位是 塊 乙個 塊 由連續的8個 扇區 組成,乙個檔案可以由多個 塊 組成,而這些 塊 並不一定是連續的。作業系統要讀取乙個檔案時,是如何找到這些 塊 的呢?這就需要一種對映關係,方便系統通過檔名找到對應的 塊 inode就用來維持這種對映關係...
linux中inode的理解
一 inode是什麼?理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組...
Linux 的檔案系統 inode
linux 的檔案系統 inode 看完了上面的說明,您應該對於硬碟有一定程度的認識了!好了,那麼接下來就是要談一談 linux 的檔案系統 filesystem 囉!我們這裡以 linux 最標準的 ext2 這個檔案系統來作為說明。還記得我們在 linux 檔案屬性與目錄配置 那個章節提到的,在...