向磁碟寫入資料提示:No spac left on device通過df -h檢視磁碟空間,發現沒滿,解決方法
阿新 • • 發佈:2018-11-13
初步判斷應該有兩種情況:一種是block滿了,另一種情況就是inode耗盡了。
首先df -i 檢視一下是否耗盡inode/block數量。
虛擬一塊磁碟並格式化:
dd if=/dev/zero of=/opt/sdb1 bs=4096 count=100
mkfs -t ext4 /opt/sdb1
將磁碟掛載到/app/log/下
mkdir /app/log -p
mount -t ext4 -o loop,defaults /opt/sdb1 /app/log/
檢視使用率情況:
df -i
批量生成檔案:
for n in `seq 60`;do touch bqh$n;done
df -h命令檢視磁碟使用率時顯示的卻是1%,但此時得用df -i檢視是否耗盡了inode。
發現inode數量已耗盡,需要刪除多餘的檔案。
如果不知道那個目錄滿了如何解決:
find ./ -size 0 先查詢到
find ./ -size 0|xargs rm –f 再刪除
存放檔案的個數受inode和Block的限制,不能超過。
生活中,存放檔案,正常情況下,先把Block耗盡,因為一個檔案只佔一個inode,但是
可能佔多個Block。
當然刪除方法有很多,若遇到大檔案數量,如果直接用rm刪除,可能會不讓刪,強行退出,可以
直接刪除上級目錄,然後再建立新目錄,從新授權等,所以得根據實際情況而選擇。