磁碟空間消失之謎

磁碟空間消失之謎

我的磁碟空間每天減少約 2GB!我只剩幾天時間了,空間就用完了。

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda4             143G  126G   11G  93% /
udev                  491M  4.0K  491M   1% /dev
tmpfs                 200M  696K  199M   1% /run
none                  5.0M     0  5.0M   0% /run/lock
none                  499M  144K  499M   1% /run/shm
/dev/sda2             1.9G  580M  1.2G  33% /tmp
/dev/sda1              92M   29M   58M  33% /boot

我一直在尋找最大的目錄/日誌文件,刪除並壓縮。但我仍然輸掉了這場戰爭。最後我發現我有一個很大的迷思:

julian@server1:~$ sudo du -h / | tail -n 1
16G     /

我的所有文件 / 僅加起來16 GB。那留下110GB下落不明!

顯然我有一個誤解:我認為“/dev/sda4”行代表“/”中可見的所有檔案。 我應該閱讀什麼內容才能了解其他儲存的去向?

更多細節:

  • 我有一個 Ubuntu 11.10 伺服器,是由資料中心工作人員設定的。
  • 它正在運行

    • 我自己的程式碼(日誌檔案相當豐富,但在磁碟機上沒有儲存太多內容)
    • 備份的口是心非(往往會儲存大量簽名檔案)
    • 各種其他標準服務,如 Apache、nagios 等。
  • 已經連續運作4個月左右,沒有重啟過。

  • 我對 du 輸出撒了謊(為了效果而簡化了它)。它也抱怨無法存取 GVFS 和 du 進程自己的資源。我相信它們是無關緊要的:

 du: cannot access `/home/julian/.gvfs': Permission denied
 du: cannot access `/proc/10841/task/10841/fd/4': No such file or directory
 du: cannot access `/proc/10841/task/10841/fdinfo/4': No such file or directory
 du: cannot access `/proc/10841/fd/4': No such file or directory
 du: cannot access `/proc/10841/fdinfo/4': No such file or directory

答案1

這可能是由於某些應用程式寫入未連結的臨時檔案所引起的 - 此類檔案不會顯示在du輸出中(因為它們在任何目錄中都沒有條目),但應用程式仍然能夠寫入它,因此文件將增長並佔用空間。

您可以使用lsof +L命令來尋找硬連結計數為零的文件,並查看哪個程序擁有該文件。重新啟動該進程應該會釋放空間。

這個答案稍微長一點的解釋

相關內容