解決linux系統(tǒng)刪除文件后,可用率沒(méi)變,磁盤還是滿的問(wèn)題
前言
某天更新服務(wù)時(shí),發(fā)現(xiàn)服務(wù)怎么也上傳不了,原因是磁盤空間不足,這很簡(jiǎn)單,直接找到大文件刪除rm -rf 即可,但是我刪除之后,df -h 發(fā)現(xiàn)磁盤空間一點(diǎn)變化都沒(méi)有,可用率還是滿的

排查
隨后進(jìn)行問(wèn)題排查
難道是系統(tǒng)反應(yīng)慢,沒(méi)有刷新造成的?
我就立即執(zhí)行
lecho 3 > /proc/sys/vm/drop_caches
這個(gè)命令會(huì)強(qiáng)制釋放系統(tǒng)緩存空間,清空所有級(jí)別的緩存,包括頁(yè)面緩存、dentry緩存和inode緩存
但是沒(méi)什么用。。。。。
于是百度了示意
在 Linux 中,文件存儲(chǔ)在硬盤上的最小存儲(chǔ)單位是扇區(qū)(Sector),每個(gè) sector 只有 512字節(jié)大??;多個(gè) sector 可以組成文件塊 (block) 。當(dāng)我們讀取某個(gè)文件數(shù)據(jù)的時(shí)候,操作系統(tǒng)就需要知道這個(gè)文件存儲(chǔ)在哪個(gè) block 上。文件的數(shù)據(jù)存放位置信息被存放到了 inode (索引節(jié)點(diǎn))上。也就是說(shuō),在 Linux 下,文件由指針部分(inode)和數(shù)據(jù)部分(data)組成。
因此,執(zhí)行 rm xxx 命令刪除文件的時(shí)候,只是刪掉了inode數(shù)據(jù),而文件的實(shí)際數(shù)據(jù)部分在 inode 被清除掉之后,會(huì)被覆蓋并寫入新的內(nèi)容。但是如果文件在刪除的時(shí)候是被打開(kāi)的(有一個(gè)進(jìn)程正在使用該文件,文件被進(jìn)程鎖定或者有進(jìn)程一直在向這個(gè)文件寫數(shù)據(jù)等)狀態(tài),那么進(jìn)程依舊可以讀取該文件,系統(tǒng)就會(huì)認(rèn)為該文件的磁盤空間一直被占用。
雖然刪除了文件,但是由于進(jìn)程還在一直向這個(gè)文件寫入內(nèi)容,文件的 inode 并沒(méi)有清除掉,系統(tǒng)內(nèi)核認(rèn)為文件并未刪除,這才出現(xiàn)空間不釋放的情況。也就是說(shuō):當(dāng)一個(gè)進(jìn)程持續(xù)的寫入一個(gè)文件的時(shí)候,直接刪除這個(gè)文件,磁盤空間并不會(huì)得到釋放。
那么我們就清楚了,是被占用導(dǎo)致表象刪除,所以我們可以重啟相關(guān)服務(wù),或者是直接殺死該進(jìn)程
解決
lsof | grep deleted | grep docker
我是docker相關(guān)服務(wù)引發(fā)的,所以我檢索了docker,各位在不清楚的時(shí)候可以不用檢索,直接lsof | grep deleted

于是我將這個(gè)進(jìn)程kill -9 進(jìn)程號(hào)
df- h

這樣就正常了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用Apache.POI中HSSFWorkbook導(dǎo)出到Excel的實(shí)現(xiàn)方法
這篇文章主要介紹了Java使用Apache.POI中HSSFWorkbook導(dǎo)出到Excel的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法
當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。下面這篇文章主要給大家介紹了關(guān)于在Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11
Linux下合并多個(gè)PDF文件為一個(gè)PDF文件的方法匯總
在 Linux 系統(tǒng)中,有時(shí)需要將多個(gè) PDF 文件合并成一個(gè)大的 PDF 文件,例如,在整理文檔、生成報(bào)告等場(chǎng)景下,合并多個(gè)相關(guān)的 PDF 文件可以提高文檔的整體性和可讀性,本文給大家介紹了一些常見(jiàn)的方法,需要的朋友可以參考下2025-07-07
Linux TCP隊(duì)列的實(shí)例解讀,提高網(wǎng)絡(luò)性能和穩(wěn)定性
這篇文章主要介紹了Linux TCP隊(duì)列的實(shí)例解讀,提高網(wǎng)絡(luò)性能和穩(wěn)定性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
國(guó)產(chǎn)操作類linux系統(tǒng)vnc服務(wù)方式
該文章介紹了如何在銀河麒麟v10系統(tǒng)上配置和使用VNC(Virtual Network Console)虛擬網(wǎng)絡(luò)控制臺(tái)協(xié)議進(jìn)行遠(yuǎn)程圖形化控制,包括查看可用軟件組、安裝VNC服務(wù)、配置VNC服務(wù)、啟動(dòng)和停止VNC服務(wù)、VNC服務(wù)參數(shù)說(shuō)明以及VNC服務(wù)其他說(shuō)明2026-01-01
使用Samba在Linux服務(wù)器上搭建共享文件服務(wù)的方法
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。這篇文章主要介紹了使用Samba在Linux服務(wù)器上搭建共享文件服務(wù) ,需要的朋友可以參考下2019-05-05
ubuntu中swap(虛擬內(nèi)存)設(shè)置方法
這篇文章主要介紹了ubuntu中swap(虛擬內(nèi)存)設(shè)置方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Linux基礎(chǔ)學(xué)習(xí)之利用tcpdump抓包實(shí)例代碼
tcpdump是Linux下面的一個(gè)開(kāi)源的抓包工具,和Windows下面的wireshark抓包工具一樣, 支持抓取指定網(wǎng)口、指定目的地址、指定源地址、指定端口、指定協(xié)議的數(shù)據(jù)。下面這篇文章主要給大家介紹了關(guān)于Linux基礎(chǔ)學(xué)習(xí)之利用tcpdump抓包的相關(guān)資料,需要的朋友可以參考下。2017-12-12
Linux查看有線網(wǎng)卡和無(wú)線網(wǎng)卡的方法詳解
在 Linux 中查看有線網(wǎng)卡狀態(tài)的命令與查看無(wú)線網(wǎng)卡的命令類似,但側(cè)重點(diǎn)有所不同,以下是幾個(gè)最常用和有效的命令,并有詳細(xì)的代碼供大家參考,感興趣的小伙伴跟著小編一起來(lái)看看吧2025-10-10

