系統出現 no space left on 報錯 可是使用df -h 發現磁盤並無滿node
企業中在什麼狀況下會發生bash
解答:ide
ext4文件系統在格式化的時候會建立inode 和 block spa
磁盤空間盡是由inode和block兩個標準來決定的blog
題意說用df -h 查看沒有滿 df -h 是查看block塊的說明block塊沒有滿因此應使用df -i 查看inode是否滿了get
1 block被佔滿it
定位問題class
一、查看實際文件佔用空間的大小awk
# mount | awk '/sd|hd/{print $3}' | xargs -i du -sh {} 2>/dev/null | sed -r 's#([^ \t]*)[ \t]*(.*)#echo -e "`mount | grep "\\b \2 \\b" | cut -d " " -f1`\\t\1\\t\2" #g' | bash /dev/sda2 1.6G / /dev/sda1 34M /boot
二、使用df查看block佔用量
sed
# df -h | awk -F "[ \t]*" '/sd|hd/{print $1"\t"$3"\t"$6}' /dev/sda2 1.6G / /dev/sda1 36M /boot
三、比較(1)和(2)的結果
1> (1)和(2)的結果不相等
# lsof | grep deleted 查看是否有刪除了的文件還在被程序調用
確認該數據不是誤刪除的文件
重啓調用該文件的程序
2> (1)和(2)的結果相等
# find / -type f 2>/dev/null | xargs du 2>/dev/null | sort -n | taildf 查看佔用系統空間最多的文件
確認該文件已經無用
使用 >/路徑/路徑 清空該文件
2 inode被佔滿
定位問題
查看小文件最多的目錄
# find / -type f -size -1k | xargs -i dirname {} | sort | uniq -c | sort -n | tail
在肯定該目錄下的小文件沒用以後
# find /路徑/路徑 -size -1k -type f | xargs rm -f 刪除過多的小文件
感謝老男孩教育 感謝強哥