2012年12月22日 星期六

檢查磁碟使用量的工具


通常 notebook 的硬碟都不會太大,再加上使用 lvm 裝了七、八個 OS,所以很快就滿了,因此常常處於需要清理磁碟空間的狀況,但是這卻不是件容易的事,要找出哪些該清、哪些能清要耗掉滿多時間的。

當然,能用的工具多不勝數,底下只介紹幾個工具:

一、du 指令:

$ du -hax --max-depth=1 ./ | sort -h
7.9M ./Fonts
54M ./Scratch
352M ./nitdroid
398M ./proxmox-ve_2.2-7f9cfa4c-28.iso
3.8G ./raspberrypi
6.1G ./

檢查目前目錄中所有檔案的使用情形,只列出第一層目錄,並將結果由小到大排列。
這樣就可以很容易的看出哪些檔案或目錄佔掉大部份的磁碟空間。
假設我們要再檢查 ./raspberrypi 裡的資料, 要再下一次指令:
$ du -hax --max-depth=1 ./raspberrypi | sort -h
2.8M ./raspberrypi/apps
149M ./raspberrypi/games
160M ./raspberrypi/archlinux
273M ./raspberrypi/gentoo-raspberry
279M ./raspberrypi/opensuse
539M ./raspberrypi/raspbian
575M ./raspberrypi/fedora
659M ./raspberrypi/xbian
742M ./raspberrypi/qtonpi
3.8G ./raspberrypi

加 --time 可顯示最後修改時間

二、ncdu:

$ ncdu -x ./
--- /media/share/download
3.8GiB [##########] /raspberrypi
397.4MiB [# ] proxmox-ve_2.2-7f9cfa4c-28.iso
384.6MiB [ ] RacyPy2.iso
351.6MiB [ ] /nitdroid
70.5MiB [ ] /wine
53.6MiB [ ] /Scratch
47.1MiB [ ] GIMP+Magazine+Issue+1.pdf
46.5MiB [ ] slitaz-armhf-mini-2012-12-14.zip

非常直覺,以上下左右鍵來移動光棒,在目錄上按 Enter 即可進入下層目錄,一目瞭然。


三、 xdiskusage:

上二個都是在命令列或終端機執行,有些人看到醜醜的就不想用,沒關係,有圖形介面的。
$ xdiskusage -a ./
出現一個視窗,最左方是第一層起始目錄,右方則是裡面的子目錄,也是滿直覺的,一看就知道哪個目錄佔掉大部份空間。


圖1 顯示 ./ 使用 6.052G,而中間 raspberrypi 用掉 3.797G,接著看到 raspberrypi 裡最下層子目錄 games 佔掉 148.5M,可是再下去太小了,看不清楚,以滑鼠左鍵點 games 二下即可以 games 為第一層目錄,這樣就全部跟著放大,不會看不清楚了。也可以用上下左右鍵來移動,Enter 來進入該層目錄,左鍵回上一層。


圖2為 games 裡的資料,經過放大後看得很清楚。


xdiskusage 還可以從 standard input 來輸入 du 的資料:
$ du -k . | xdiskusage


四、agedu:

先掃描要檢查的目錄,並記錄在 ./agedu.dat 中
$ agedu -s ./

讀入 ./agedu.dat 並 listen localhost tcp port 34769
$ agedu --files -w
Using Linux /proc/net magic authentication
URL: http://localhost:34769/


以瀏覽器打開 http://localhost:34769 即可,如圖3。
agedu 有一項別套沒有的特點,就是可直接看顏色來判斷這個目錄有多久前存取,紅色表示二個月以上沒修改,對於我們判斷要不要清除很好用的。滑鼠移至顏色上方,能看見這目錄多久前存取過。

agedu 預設只能看目錄,無法看到各個檔案大小,可加 --files 來看所有檔案。
$ agedu --files -w

也可以像 du 指令一樣在 terminal 中使用
$ agedu -t ./

還有滿多參數的,請自行參考
$ man agedu


有了這些工具後,對於清理磁碟榨出空間的工作,不再是那麼煩人了。

6 則留言:

  1. 很適合企業用的工具哦! 這個文章寫得好!

    回覆刪除
  2. 超級實用的教學文拉!!

    回覆刪除
  3. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 感謝建議,試過了,非常小沒錯,但是由於變 embed linux,所以和原本 debian 比起來程式少太多了,像要裝個 python-pip 都沒有。
      還不如用這個 84M 的比較不會麻煩 ^_^
      http://www.cnx-software.com/2012/07/31/84-mb-minimal-raspbian-armhf-image-for-raspberry-pi/

      刪除
  4. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 您好:
      真的好熱血喔,還搞這種 porting 的事。
      知道了這 project 以後會多多觀注,不過小弟現在變得超懶的,沒什麼心力玩那麼底層的東東,比較想把時間花在學習使用軟體方面 ^_^
      一起加油吧。

      刪除