1. 程式人生 > >向磁碟寫入資料提示:No spac left on device通過df -h檢視磁碟空間,發現沒滿,解決方法

向磁碟寫入資料提示:No spac left on device通過df -h檢視磁碟空間,發現沒滿,解決方法

初步判斷應該有兩種情況:一種是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刪除,可能會不讓刪,強行退出,可以

直接刪除上級目錄,然後再建立新目錄,從新授權等,所以得根據實際情況而選擇。