本文我們來(lái)講講Linux下丟失的磁盤(pán)空間如何找回,目前我知道的丟失硬盤(pán)空間的情況是:隱藏文件,非空目錄被mount,空洞文件三種,經(jīng)常接觸linux,尤其是多人共用的服務(wù)器上的linux的朋友,也許會(huì)經(jīng)常遇到這樣的問(wèn)題:
收到一個(gè)磁盤(pán)告警,說(shuō)某某分區(qū)已經(jīng)滿(mǎn)了,然后登錄服務(wù)器 df 一看,發(fā)現(xiàn)磁盤(pán)確實(shí)快滿(mǎn)了,然后你就想找到具體是哪個(gè)目錄滿(mǎn)了,于是 du -s * 一看,卻發(fā)現(xiàn)所有子目錄的大小總和卻和df顯示的總已使用磁盤(pán)空間對(duì)不上,有時(shí)候甚至還相差很多,于是就納悶了,我的磁盤(pán)空間去哪了呢?
這里就列一下我所知的3種情況:
隱藏文件
linux系統(tǒng)把文件名以.(點(diǎn)號(hào))開(kāi)頭的文件視為隱藏文件,而類(lèi)似bash里*這樣的操作符是不會(huì)匹配隱藏文件的,所以如果根目錄下有個(gè)較大的隱藏文件的話(huà),是不會(huì)被du -sh * 統(tǒng)計(jì)到的,解決辦法就是:du -sh .[^.]* .
非空目錄被mount
一般掛載其他分區(qū)的時(shí)候都是建議mount到一個(gè)空目錄的,那么如果mount到一個(gè)非空的目錄,情況會(huì)怎么樣呢?比如/mnt目錄本來(lái)里面是有文件的,然后執(zhí)行了sudo mount /dev/sda6 /mnt。其實(shí)這個(gè)mount命令完全能正常執(zhí)行,被mount的分區(qū)也能正常訪(fǎng)問(wèn),只是原先在/mnt里的文件,現(xiàn)在已經(jīng)訪(fǎng)問(wèn)不到了,包括du也看不到大小了,但是磁盤(pán)空間卻還是被占著,因?yàn)槿绻?umount /mnt 以后,原來(lái)的文件都還會(huì)回來(lái)的.
空洞文件
一個(gè)文件的大小和所占磁盤(pán)空間也不一定完全一致,比如某個(gè)程序一直打開(kāi)著一個(gè)叫l(wèi)og的文件在寫(xiě),而中間有人用 > log 命令清除了log的內(nèi)容,就會(huì)產(chǎn)生這樣的文件,這里有這種文件的介紹.
經(jīng)過(guò)以上三個(gè)辦法的處理,你的磁盤(pán)空間是不是大了許多?不過(guò)可能還有別的情況,歡迎補(bǔ)充.
新聞熱點(diǎn)
疑難解答
圖片精選