關於linux中無法建立檔案,裝置上沒有空間的報錯

huangdazhu發表於2017-07-28
在linux檔案系統中,我們在進行格式化的時候,預設的16K佔用一個node,
所以在進行需要進行多檔案儲存的時候,一定要進行node的定義,一般設定為1K佔用一個node 就可以了

如下報錯:檔案系統生成在/data下
[weblogic@web_gx filetest]$ df -h
檔案系統              容量  已用  可用 已用%% 掛載點
/dev/mapper/vg_10-lv_root
                       26G   17G  7.0G  72% /
tmpfs                  16G     0   16G   0% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/dev/mapper/vg_10-lv_data01
                      9.9G  7.9G  1.5G  85% /data01
/dev/sdc1              50G   16G   32G  33% /data


在生成檔案的時候進行了報錯:
/bin/touch: 無法建立"filetest11-627500": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627501": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627502": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627503": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627504": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627505": 裝置上沒有空間
/bin/touch: 無法建立"filetest11-627520": 裝置上沒有空間

再進行df -i 進行檢視
[weblogic@web_gx filetest]$ df -i /data
檔案系統              Inode  已用(I)  可用(I) 已用(I)%% 掛載點
/dev/sdc1            3276800 3276800       0  100% /data

node 已經用完。
處理方案:
1:刪除一些吳勇的檔案
2:重新格式化檔案系統
mkfs.ext3 /dev/sdc1 -i 1024

[weblogic@web_gx data]$ df -i /data
檔案系統              Inode  已用(I)  可用(I) 已用(I)%% 掛載點
/dev/sdc1            3276800 1471245 1805555   45% /data
[weblogic@web_gx data]$ 

批次生成檔案的指令碼如下:
#!/bin/bash


shopt -s expand_aliases
alias ll="ls -l"
 
cd /data/filetest
 
#首先判斷目錄是否存在,不存在則建立目錄
if [ ! -e filetest ]
then
        /bin/mkdir filetest
else
       echo ""
fi
 
path=/data/filetest/filetest
cd $path
for((i=1;i<=3000000;i++))
do
      /bin/touch filetest-$i
     echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" >> filetest-$i
done

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-2142746/,如需轉載,請註明出處,否則將追究法律責任。

相關文章