ディレクトリ別のディスク使用率チェックをクールにこなすツール群

 コンピュータ世界におけるパーキンソンの法則が成立し続けるなら、どのような大容量ディスクを搭載していようとも、やがては空き容量不足に陥ることになる。そしてこうした現象が現在進行形で問題化しているユーザであれば、ディレクトリ別のディスク使用率の解析ツールを利用して、何が空き容量を食いつぶしているのかを確認すべきだろう。

 最初に紹介する Filelight はKDE用に開発されたツールだが、その他のデスクトップ環境でも利用できる。最新バージョンは2006年9月にリリースされたきりであるものの、開発者はKDE 4バージョンの公開も検討しているようであり(確約ではないが)「ぼちぼち作業を進めています」とのことだ。Filelightは多くのディストリビューションに取り込まれているので、そうした環境ではパッケージマネージャからインストールすればいい。またFilelightはKonquerorプラグインとしても機能するよう作られており、そのインストール後のKonquerorには、「View」→「View Mode」→「Radialmap View」にてアクセスできる新規のビューが追加されるはずだ。

diskspace1_thumb.png
Filelight(左上)、KDirStat(右上)、JDiskReport(右下)、Baobab(左下)

 Filelightにて解析されたディレクトリ別のディスク占有率情報は、ディスク全体を1つの円と見立てた円グラフの一種として表示される。ここに示されるディレクトリは大まかな種類ごとにカラー分類されており、サブディレクトリ群は同心円の外周側に配置され、多量のファイルを格納したディレクトリは黒い三角形で表示されるという仕様だ。ディレクトリを示す扇(円弧)状のセクタにマウスポインタを重ねると、そのフルパス、サイズ(メガバイト単位とディスク占有率)、収録ファイル数がポップアップ表示される。こうしたセクタに対するクリックは、選択ディレクトリをベースとした詳細表示への切り替え操作であり、ディスク階層に従った掘り下げが行えるようになっている。また右クリックするとコンテクストメニューが開き、ここからはディレクトリやファイルの削除が直接実行できる。

 Filelightでの変更可能な設定項目は限られているが、それでも各種項目の表示カラーや、サイズの小さいファイル群の表示の有無などをユーザ指定することができる。また特定ディレクトリ(例えば/sysや/proc)をスキャン対象外とすることも可能だ。

 次に紹介する Philesight は、先のFilelightをWeb経由で動作するようにRubyで作り直したクローン版である。Philesightの動作にはCGI対応サーバが必要となるが、その他の必要要件およびインストールの手順については同プログラムのWebサイトを参照して頂きたい。この場合もクリック操作でディレクトリを展開するという方式はオリジナルと同様だが、こちらはWebベースの作りとなっているので、ホスト上の空き容量をリモートでチェックすることができる。ただし空き容量を広げるといった操作には、それを目的としたツールが別途必要だ。

 次に紹介する JDiskReport もFilelightの類似ツールだが、こちらはJavaで記述されているため、複数のオペレーティングシステムで使用可能となっている。インストール手順は簡単で、最新バージョンのzipパッケージをダウンロードしたものを解凍し、「java -jar jdiskreport-1.3.1.jar」(現行バージョン用の指定)にて実行すればいい。プログラムの初回起動時には、ライセンスを受け入れるかの確認がされ、その後で調査対象のディレクトリを指定するとスキャンが実行される。一部のディレクトリ(/procなど)は自動で除外されるが、具体的に何がスキャン対象外とされているかは「File」→「Preferences」→「Filter」にて確認して頂きたい。

 このJDiskReportの場合、指定ディレクトリのディスク使用率が円グラフ形式で表示されるが、その中でもサイズの大きい上位数個のサブディレクトリが個別の扇形セクタとして示されるのはいいとしても、問題はその他の細かなサブディレクトリ群がOtherとして一括りに分類される点だ。つまり後者に関しては、その内部を開いてそこに属するファイル群を調べるという操作が行えないのである。あるいは、円グラフ上に表示する扇形セクタの数を増やす(Otherにまとめるファイル数を少なくする)こともできるが、その場合は「File」→「Preferences」→「Charting」にアクセスして関連するパラメータを変更するしかない。

 個々の扇形セクタについてはクリック操作にてディレクトリ階層を掘り下げていくことができるが、その際には親ディレクトリに対する新規の円グラフが表示されていく。またディレクトリ全体の構成は画面左側のツリー状フォーマットで確認できるようになっており、これらに対してもクリック操作によるディレクトリ指定が可能だ。その他、画面下端にある“view”アイコン群をクリックすると、リング状グラフ(Filelightと同様の形式)、棒グラフ、ファイルのリストといった表示に切り換えられる。なおファイルの表示/非表示を切り換えるチェックボックスは用意されているが、ディレクトリは常に表示されたままとなる。

 JDiskReportにはその他の機能も装備されており、例えばTop 50タブにはサイズの大きい上位50個のファイルが一覧される(日付の新旧とすることも可)。同じく、Size Dist、Modified、Typeの各タブには、ファイル群の構成情報がそれぞれ、サイズ、変更日、拡張子別の帯グラフ形式で表示される。これらの使い勝手はそれほど良くないが、情報としては役立つ内容だ。ツールバーには、ディレクトリ間の移動や再スキャン、解析結果の各種モードでの並べ替え用のアイコン群が配置されている。ただしJDiskReportにはファイルを直接削除する機能が用意されていないので、スキャン結果を基に不要なファイルを見つけたとしても、空き容量を広げるためのツールを別途起動しなくてはならない。

シェルを用いた操作法
 必要とする情報が、個々のディレクトリ別の使用率ではなく、残された空き容量だけであれば、すべてのファイルシステムを簡単なリスト形式で出力する「df -hT」コマンドを使用すればいい。その出力を見れば、タイプ情報などと併せて、使用可能な空き容量の合計も確認できる。またこのコマンドにて取得できる情報については、視認性に優れたグラフィカル表示化するための“ラッパー”ソフトがいくつか作成されている。例えばPythonスクリプトとして記述された Frees は、基本的にはdfコマンドの実行結果をフォーマットし直すだけのものだが、特定ドライブを表示から除外させたり、表示する情報列を絞り込むことができ、そうした制限をかけた場合の合計値の行も表示されるようになっているのだ。 KDiskFree も同様のツールだが、こちらはデバイスのマウントとアンマウントが行える。またKDiskFreeをデスクトップアプレット化した KwikDisk の場合はシステムトレイに常駐させておけるので、デバイスが空き容量不足になった際に警告を出すという使い方が可能だ。

 各自の使用目的に応じてより特化した情報が必要だという場合は、Linuxではお馴染みの方式にて複数のコマンドを連携させてもいいだろう。例えば「du | sort -rn | head -n 20」という組み合わせを用いれば、各ディレクトリの占めるディスク容量を個別に集計し、その結果を降順に並べ替え、上位20行だけを出力させるという処理が行える。このようなコマンドを用いれば、ディスク容量を最も多量に消費しているユーザを特定するといった作業が簡単化されるはずだ。ただし、そうした情報を基にした空き容量確保の作業については、適切な方法を自力で別途に用意しなくてはならない。

 ここまでに紹介したツールはいずれもディスク使用率を円グラフ形式で提示するタイプであったが、 KDirStat の場合は同じ情報を示すのに、多数の四角形を寄せ木細工状に配置するツリーマッピング(treemapping)と呼ばれる手法が用いられている。この場合、外枠となる長方形が1つのディレクトリ全体を示し、その下層に存在する個々のサブディレクトリ群は大きさの異なる四角形として表示されるが、枠中にタイル形式で配置される四角形の大きさは各ファイルのサイズに対応しているので、一見するだけでサイズ最大のファイルを特定できるのが特長だ。

 このKDirStatは本来KDEプログラムなのだが、その他のデスクトップ環境でも使用可能であり、 WinDirStat というWindows用クローンも作成されている。また大半のディストリビューションに同梱されているので、インストールに関して特に困ることはないだろう。KDirStatを起動すると解析対象のディレクトリ指定が求められ、必要な情報を読み込んでいる間はパックマンもどきのキャラクタが画面上を動くようになっている(この設定は「Settings」→「Configure」→「General」にて変更可能)。その後ディスク占有率のマップが表示されるが、個々の四角形をクリックすると詳細情報が表示されるし、不要と判断したファイルについてはゴミ箱送りないし完全消去させることも可能だ。また「Configure」→「General」→「Cleanups」にアクセスすれば、事前定義されたオプションに加えてその他の操作をユーザ定義することもできる。

 これと同様の表示方式は、Konqueror用プラグインとして作られた FSView も採用しており、このツールの場合は目的のディレクトリに移動してから「View」→「View Mode」→「File Size View」を選択すると、当該ディレクトリのツリーマップが作成される。こうして提示された個々の四角形をクリックすれば対応するツリーマップを確認できるので、空き容量を増やしたければ不要なファイルを削除していけばいい。

 Baobab(現在の名称はDisk Usage Analyzer)は、使用率の棒グラフを並べた単純なリスト形式とツリーマップ形式とを選択できるタイプのツールだ。ただし残念ながらアルゴリズムの作りがこなれておらず、細長い長方形がびっしり詰まった状態でのマップ表示は、ユーザによる選択操作を困難としている。それでもディレクトリを示す四角形にマウスポインタを重ねると、ツールチップ形式でフォルダ名を確認できるし、ファイルを削除したければ、右クリックメニューのOpenを選んで表示されるファイルマネージャから操作すればいい。またファイルシステム上でスキャン対象とするデバイスを指定することもできる。

 Linuxの場合、どのような種類のタスクにせよ複数のソリューションが存在しているのが普通だが、ディスク使用率の調査ツールに関しても、少し探せば本稿で紹介したようなツールが10やそこらは簡単に見つかるはずだ。

Federico Kerekiはウルグアイ出身のシステムエンジニアで、20年以上に渡るシステム開発、コンサルティング、大学講師の経験を有している。

Linux.com 原文(2008年12月17日)