linux系統下檔案資料儲存在"塊"中,檔案的元資訊,例如檔案的建立者、檔案的建立日期、檔案的大小等。這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。
inode也占用硬碟空間,硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是資料區,存放檔案資料;另乙個是inode區(inode table),存放inode所包含的資訊。
每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1kb或每2kb就設定乙個inode。假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼inode table的大小就會達到128mb,佔整塊硬碟的12.8%。
inodes使用完與儲存空間使用完相似,都是建立不了檔案或無法正常執行一些命令。inodes使用完,儲存空間可能還有,這種情況一般是生成了大量的小檔案,把inode table佔滿。
一般情況下儲存空間使用完,inodes往往才使用百分之幾,所以容易忽視對inodes使用情況的監控。
檢視inodess使用情況,使用df -i命令
上述兩個命令可以使用-h引數,命令為df -h和df -hi。從圖中看見磁碟空間使用71%,但是inodes使用100%。
linux作業系統根目錄一般分割槽比較小,如果有定時性的小檔案產生而又未及時清理,則很容易造成inodes佔滿。
(1)檢視檔案最多的目錄
for i in /*; do echo $i; find $i | wc -l; done
如果確定目錄範圍,把/*寫的具體點
最終發現是/var/spool/postfix/maildrop
目錄下小檔案過多,原因如下:由於linux在執行cron時,會將cron執行指令碼中的output和warning資訊,都會以郵件的形式傳送給cron所有者。由於客戶環境中的sendmail和postfix沒有正常執行,郵件傳送不成功,導致全部小檔案都堆積在maildrop目錄下,另由於缺乏自動清理的機制,故此目錄下堆積了大量的檔案。
經過排查root使用者下發現有個每分鐘進行一次時鐘同步的定時任務,該定時任務每分鐘產生乙個小檔案。
(2)刪除大量檔案
ls | xargs -n 1000 rm -rf 需要使用xargs命令,不然會刪除失敗。
(1)設定方面在crontab -e 第一行增加mailto="" ,就沒有檔案產生啦
*/10 * * * * /tmp/test.sh >/dev/null 2>&1
(3)定時清理檔案
find 目錄 -type f -mtime +30 | xargs -n 1000 rm -f**
(4)監控inodes的使 自製linux系統 LFS 資源
乙個很不錯的的lfs論談專區,對於新手非常有幫助,製作中出現的問題,可以搜搜前人走過的路 孫海勇的 手把手教你如何建立自己的linux系統 第二版 完全可以根據這個手冊製作出乙個成型的linux系統,在編譯所要原始碼時,需要輸入很多指令碼,可一定要仔細檢查輸入的指令碼,一步輸錯可將對後面編譯造無法挽...
Linux系統資源檢視
1.vmstat命令監控系統資源 vmstat 重新整理延時 重新整理次數 root better vmstat 1 3 procs memory swap io system cpu r b swpd free buff cache si so bi bo in cs us sy id wa st...
linux系統資源監控
如何檢視linux支援哪些命令 連按兩次tab鍵 top 作為乙個廣為人知的linux工具,top是大多數的類 unix 作業系統任務管理器。它可以顯示當前正在執行的程序的列表,使用者可以按照不同的條件對該列表進行排序。它主要顯示了系統程序對cpu和記憶體的使用狀況。top可以快速檢查是哪個或哪幾個...