du | sortノスゝメ

2011-09-15 堀内寛己(ほりうちひろき) <x19290@gmail.com>

Un*xを使っていて、ディスクのどのあたりが容量を食っているか知りたいことがあったとして、たいてい思い浮ぶのが、次のようなパイプラインです。

$ sudo du -s * | sort -n

僕も大昔、そういうことをしたことがありました(今でもしますが)。 ただ、ある時、たまたま次のように打ってしまいました。

$ sudo du | sort -n

結果、ダーっと出力が出て、最後の方は以下のようになりました。

...
106104  ./eclipse
110348  ./PharoByExample-japanese
127460  ./.mozilla/firefox/kgg4r9j0.default/Cache
135308  ./akasofu
148088  ./.cpan/build
182484  ./.cpan
203040  ./.mozilla/firefox/kgg4r9j0.default
203076  ./.mozilla/firefox
215636  ./.mozilla
339096  ./.cache/google-chrome/Default/Cache
339100  ./.cache/google-chrome/Default
345764  ./.cache/google-chrome
363112  ./.cache
569712  ./.icedove/bhif7tln.default/ImapMail/x19290/[Gmail].sbd
965452  ./.icedove/bhif7tln.default/ImapMail/x19290
1004776 ./.icedove/bhif7tln.default/ImapMail
1372888 ./.icedove/bhif7tln.default
1375844 ./.icedove
3950076 .

これは実は、ついさっき、自分のホームディレクトリ (~h2) でこのパイプラインを試した結果であす。 .icedove のとくに、Gmail キャッシュが、容量を食っていることが一目瞭然です。 他にも、.cache だとか、.mozillaだとか、.cpan だとか、最悪、無くなっても大泣きはしないで済むデータが、ディスクを浪費しています。

そこで考えました。 堀内家 LAN では、/home と /opt を NFS で提供しています。 /home には個人の貴重なデータを置きます。 /optはもともと、オプションのアプリケーションの置き場所で、失っても再建できるものを置きます。 両者ともローカルディスクとは分離されているので、OS のクリーンインストールくらいでは失われません。オプションのアプリケーションも、通常は再建の必要はありません。「OS のクリーンインストールくらいでは無くならないが、最悪無くなってもいい」という /opt の性質に着目し、先のキャッシュを /opt/h2 などに移動できないでしょうか?

できました。 今では .icedove などは、/opt/h2/.icedove へのシンボリックリンクになっています。 こうしてアプリケーションをうまく騙すことができました。 そして今の ~h2 の消費は、

...
56576   ./www
76176   ./ccaller/.git/objects
76392   ./ccaller/.git
76512   ./ccaller
81516   ./eclipse/.metadata/.plugins
81988   ./eclipse/.metadata
98024   ./.cabal
106104  ./eclipse
110348  ./PharoByExample-japanese
1573104 .

という具合です。 こうしてすべてをクラウドに預けられるようになる日が近付きました。