日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

c# 找出目录下的所有子目录_第9期:Linux下文件系统满的处理

發(fā)布時(shí)間:2025/3/15 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 找出目录下的所有子目录_第9期:Linux下文件系统满的处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文件系統(tǒng)滿(file system full),幾乎是每個(gè)程序員都會(huì)遇到的問題。它會(huì)導(dǎo)致各種神奇的現(xiàn)象,比如程序突然無法啟動(dòng)、日志突然不刷新了等。測(cè)試環(huán)境,我們通常找出大文件并刪除即可。常規(guī)的步驟是:確認(rèn)文件系統(tǒng)使用率、找出大文件(目錄)、清理。

另外,某些極端情況,即便刪除了大文件,也會(huì)發(fā)現(xiàn)文件系統(tǒng)空間未釋放。

查看文件系統(tǒng)利用率

df命令(即disk free的簡(jiǎn)稱),用于報(bào)告文件系統(tǒng)的使用量。我們通過df命令,先看初步定位一下是否有利用率(Use%)為100%或可用量(Avail)幾乎為0的的文件系統(tǒng)。如果存在,則需要注意。

如果只看某個(gè)文件或目錄所在的文件系統(tǒng),則可以跟上路徑名,比如df /home/maoshuai只會(huì)報(bào)告/home/maoshuai所在的文件系統(tǒng)的情況。

找出大文件(目錄)

找出滿的文件系統(tǒng),下一步是確定哪些文件最占空間,這樣清理起來更有效率。找出大文件可以通過du命令完成(disk usage的簡(jiǎn)稱)。

du命令默認(rèn)是遞歸輸出所有子目錄的大小,如果子目錄很多層,會(huì)讓人眼花繚亂,并不實(shí)用,倒是du -sh *更為實(shí)用。其中-h 代表用human readable的格式顯示空間大小單位,而-s即summarize,即僅輸出總大小,所有du -sh *代表輸出當(dāng)前目錄各子目錄或文件的大小。

遞歸的使用du -sh *查看,直到找出需要?jiǎng)h除的大文件。

刪除

刪除就很容易了,直接rm或使用find命令根據(jù)條件rm。

刪除后空間不釋放

上述3個(gè)步驟,基本可以處理文件系統(tǒng)滿的問題,但某些特殊情況,會(huì)出現(xiàn)刪除后空間不釋放的問題。更詭異的是明明在文件系統(tǒng)根目錄使用du -sh .查看總使用大小,竟然和df -h顯示的使用大小不一致。這很可能是出現(xiàn)了某個(gè)進(jìn)程占用了該文件。在這種情況下,即便刪除了文件,文件系統(tǒng)也不會(huì)釋放。

具體驗(yàn)證的方法就是使用lsof | grep "(deleted)",查看是否存在你刪除的文件,并查看其進(jìn)程ID,根據(jù)進(jìn)程ID找到對(duì)應(yīng)進(jìn)程,嘗試重啟該進(jìn)程。

出現(xiàn)這種詭異的現(xiàn)象,是因?yàn)長(zhǎng)inux下文件系統(tǒng)使用inode進(jìn)行管理。對(duì)進(jìn)程來說,對(duì)文件的引用并不是通過路徑名實(shí)現(xiàn),所有的路徑名都要轉(zhuǎn)換成一個(gè)inode的結(jié)點(diǎn)id,路徑名只不過是提供給“用戶”的概念。 正式基于此,Linux下竟然可以在進(jìn)程使用的時(shí)候,對(duì)占用的文件進(jìn)行重命名甚至刪除操作。因?yàn)?#xff0c;進(jìn)程根本不關(guān)心路徑名!

總結(jié)

  • 使用df確定是否存在文件系統(tǒng)滿。
  • 使用du -sh * 逐級(jí)搜索大文件或目錄
  • 使用rm -rf 刪除。
  • 如果發(fā)現(xiàn)文件刪除后,df沒有明顯的看到文件系統(tǒng)釋放,使用lsof | grep "(deleted)"查看是否存在刪除的文件仍然被某個(gè)進(jìn)程使用。
  • 總結(jié)

    以上是生活随笔為你收集整理的c# 找出目录下的所有子目录_第9期:Linux下文件系统满的处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。