今天在linux系統(tǒng)創(chuàng)建文件時碰到“no space left on device” 錯誤,但是用命令“df -lh”查看發(fā)現(xiàn)空閑空間還有很多。所以可以排除空間已滿的情況。那么導(dǎo)致文件生成失敗還有另一個原因,就是文件索引節(jié)點(diǎn)inode已滿。
查看inodes使用情況用命令“df -ih”,例如:
root@ubuntu:# df -ihfilesystem? ?inodes iused ifree iuse% mounted on/dev/mapper/ubuntu-root? ?464k464k? ? 0k100% /udev? ? 123k? ?421122k? ? 1% /devtmpfs? ?125k? ?309125k? ? 1% /runnone? ? 125k? ?4125k? ? 1% /run/locknone? ? 125k? ?1125k? ? 1% /run/shm/dev/vda1? ?122k? ?227122k? ? 1% /boot果然inodes使用已經(jīng)是100%了。
解決辦法,可以先逐一找到哪個目錄使用比較多,然后刪除。
登錄 ssh,運(yùn)行下面的命令分析根目錄下每個目錄下面有多少個文件,命令類似如下。
for i in /*; do echo $i; find $i | wc -l; done比如最好我找到是apache下的日志文件創(chuàng)建太多的原因,刪除日志后就好了。
for i in /var/log/*; do echo $i; find $i | wc -l; done