Linux系統磁盤提示滿了,可是磁盤內文件加起來的大小和被占用的大小不一致,這就是磁盤丟失的情況,那麼是什麼程序占用了磁盤空間?下面小編就給大家介紹下Linux找回丟失磁盤空間的方法。
經常接觸linux的用戶也許會經常遇到這樣的問題:
收到一個磁盤告警,說某某分區已經滿了,然後登錄服務器 df 一看,發現磁盤確實快滿了,然後你就想找到具體是哪個目錄滿了,於是 du -s * 一看,卻發現所有子目錄的大小總和卻和df顯示的總已使用磁盤空間對不上,有時候甚至還相差很多,於是就納悶了:我的磁盤空間去哪了呢?
這裡就列3種情況:
隱藏文件
linux系統把文件名以。(點號)開頭的文件視為隱藏文件,而類似bash裡*這樣的操作符是不會匹配隱藏文件的,所以如果根目錄下有個較大的隱藏文件的話,是不會被du -sh * 統計到的,解決辦法就是: du -sh 。[^.]* 。
非空目錄被mount
一般掛載其他分區的時候都是建議mount到一個空目錄的,那麼如果mount到一個非空的目錄,情況會怎麼樣呢?比如/mnt目錄本來裡面是有文件的,然後執行了sudo mount /dev/sda6 /mnt。其實這個mount命令完全能正常執行,被mount的分區也能正常訪問,只是原先在/mnt裡的文件,現在已經訪問不到了,包括du也看不到大小了,但是磁盤空間卻還是被占著,因為如果你 umount /mnt 以後,原來的文件都還會回來的。
空洞文件
一個文件的大小和所占磁盤空間也不一定完全一致,比如某個程序一直打開著一個叫log的文件在寫,而中間有人用 》 log 命令清除了log的內容,就會產生這樣的文件。
上面就是Linux找回丟失磁盤空間的方法介紹了,主要是文中三種情況平白占用了磁盤空間,磁盤空間滿了可從這些方面著手清理。