2021-05-12 14:32:11
Linux系統inode占滿故障解決方法
眾所周知,Linux檔案系統中inode編碼是指向磁碟block的唯一編號,若伺服器遭入侵或紀錄檔檔案將磁碟inode資源編號耗盡,新資料無法獲取inode編號導致無法儲存。舉例說明:在磁碟中/boot獨立分割區中檢視現有inode資源並通過for迴圈建立大量檔案佔用耗盡inode編號,導致磁碟無法寫入內容,最後進行處理故障。
[root@CentOS7 ~]# df -i /boot/ #檢視inode編號
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1024064 38 1024026 1% /boot
[root@centos7 ~] for i in {358..1024500}; do touch file$i;done
[root@centos7 ~]# df -i /boot #發現inode佔滿
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1024064 1024064 0 100% /boot
[root@centos7 ~]# cd /boot
[root@centos7 boot]# touch 123.txt #建立檔案無法成功
touch: cannot touch ‘123.txt’: No space left on device
方法一:通過傳統方式利用for迴圈刪除檔案,但是比較緩慢
[root@centos7 ~] for i in {950000..1024500}; do rm -rf file$i;done #一點的刪除
方法二:利用傳引數的方法快速有效的刪除檔案
[root@centos7 boot]# ls file{400000..500000}|xargs rm 最為有效的方法,傳引數
[root@centos7 boot]# ll file{600000..700000}|xargs rm ll列出的引數過多,傳給rm
ls: cannot access file600000: No such file or directory 時,rm不識別,因此通過
rm: invalid option -- 'w' ls顯示出獨立的檔名進
Try 'rm --help' for more information. 行傳遞。
rm: invalid option -- 'w'
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-08/146458.htm
相關文章