解決方法:1、利用“l(fā)sof | grep deleted”命令,獲取已經(jīng)被刪除但是仍被應(yīng)用程序占用的進(jìn)程;2、利用kill命令,刪除獲取的進(jìn)程即可釋放刪除的空間,語(yǔ)法為“kill -9 獲取到占用被刪文件的進(jìn)程號(hào)”。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中rm刪除不釋放空間怎么辦
因?yàn)楸粍h除的文件在刪除的時(shí)侯還是進(jìn)程在操作(打開、訪問等)的緣故,rm只完成了在磁盤上文件實(shí)體的釋放,而類似free list結(jié)構(gòu)中相應(yīng)的文件系統(tǒng)因進(jìn)程的操作相應(yīng)的inode并未釋放。
解決的方法:這樣的問題解決起來也很簡(jiǎn)單,找到操作的進(jìn)程,kill掉就可以了,可是找到操作的進(jìn)程恰恰是本問題的難點(diǎn)和關(guān)鍵。
這樣的問題也可以通過重啟機(jī)器和nmount/mount文件系統(tǒng)這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機(jī)器,小題大做。
過程:
1、找到正在用被刪文件的進(jìn)程?
lsof?|?grep?deleted
可以獲取一個(gè)已經(jīng)被刪除但是仍然被應(yīng)用程序占用的文件列表
用該命令后,我發(fā)現(xiàn)占用的文件列表非常多,我們需要將占用已刪除文件的進(jìn)程給一個(gè)一個(gè)的殺掉
示例如下:
[root@nc-ftp02?data]#?lsof?-n?/data?|grep?deleted sh?8757?root?1w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) sh?8757?root?2w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) rsync?28485?root?1w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) rsync?28485?root?2w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) ssh?28486?root?2w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) ssh?28486?root?6w?REG?202,5?287246420690?12?/data/nohup.out?(deleted) [root@nc-ftp02?data]#?lsof?-n?/data?|grep?deleted|awk?'{print?$2}' 8757 8757 28674 28674 28675 28675 [root@nc-ftp02?data]#?lsof?-n?/data?|grep?deleted|awk?'{print?$2}'|xargs?kill?-9 [root@nc-ftp02?data]#?lsof?-n?/data?|grep?deleted [root@nc-ftp02?data]#?df?-h Filesystem?Size?Used?Avail?Use%?Mounted?on /dev/xvda2?99G?4.2G?90G?5%?/ tmpfs?3.9G?228K?3.9G?1%?/dev/shm /dev/xvda1?380M?66M?294M?19%?/boot /dev/xvda5?386G?22G?345G?6%?/data
2、kill掉相應(yīng)的進(jìn)程空間就釋放了
kill?-9?PID
推薦學(xué)習(xí):Linux視頻教程