miau's blog?

du_scanner

HDD が一杯になってどのファイルが容量を食ってるか確認したくなった時、私は Scanner というソフトを使います。

ハードディスクの使用状況を視覚的に確認できる「Scanner」v2.1

マインドマップ的な理屈(下の階層ほど外周部に表示される)で、情報が効率よく収まっているので気に入っているわけですが。

先日開発に使用している UNIX サーバが容量不足になりまして。
du コマンドで各フォルダの容量を見たわけですが・・・ソート表示してもいまいちピンと来ません。
そんなわけで、Perl で「du の結果を読み込んで Scanner っぽく表示する」スクリプトを書いてみました。

du_scanner.pl
(.pl 置くと変なことになるので拡張子は .txt に変えてます)

表示結果はこんな感じ。

du_scanner 拡大表示





■起動方法


du | perl du_scanner.pl

とするか、

du > du.txt
du_scanner.pl du.txt

とするか、どちらか。
私は telnet で du を実行して、ローカル(Windows)で du_scanner を実行してます。


■操作

基本的に Scanner の操作を真似ています。

・マウスポインタの下にあるディレクトリ名を表示
・特定のディレクトリをダブルクリックすると、そのノードの下だけを表示
・「root」押下で、読み込んだファイルのルートを表示。(初期表示状態に)
・「parent」押下で、表示中のノードの一つ親のノードを表示。


■制限事項

・Tk モジュールが必要です。最近 Perl には標準で付いていると思いますが、あまり自信ないです。
・use encoding 'cp932' とかやってますので、古い Encode モジュールしか入っていないような環境では動かないかもしれません。
・めんどくさいので文字コードの変換等は行っていません。日本語でディレクトリとか作っていたらどうなるかわかりません。


■Scanner と異なる点

・df コマンドである程度目星をつけてから実行することを想定しています。
 そのため、Scanner と違って空き容量に関する情報はどこにもありません。

・各フォルダは固有の色で表示されます。
 実行の度に色が変わる、なんてこともありません。
 (du を相対パスで実行したか、絶対パスで実行したかによって色は変わってしまいますが)
 
 これは「右側にある緑色のやつが結構容量食ってるけど、これ何?」みたいな会話がしやすいように、また「またこの紫色のフォルダが膨れ上がってるよ!」みたいな認識に役立つかな、という意図でやってます。(ちょっとしたこだわりです)


■苦労話

Tk で createArc() する際に、描画する角度が小さすぎるとなぜか 360 degrees で表示されてしまうようで。この現象に気づかず、原因調査で結構ハマりました。
対策として「ある程度角度が小さいものは表示対象から外す」という処理を入れたのですが、このおかげで初期表示の階層数が少なくなって、より見やすくなった気がします。
結果オーライではあるんですが・・・なんだかなぁ。
posted at 08:27:10 on 2005-12-22 by miau - Category: General No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。