連載
» 2004年05月15日 05時00分 公開

diruseコマンドでディスクの使用量を調べるTech TIPS

各ユーザーがどのくらいディスクを使用しているかや、システム内の各フォルダがどのくらい利用されているかを調べたい場合がある。フォルダ別のディスク使用量を調査するには、リソースキット・ツールに含まれるdiruseコマンドを使うとよい。SFU環境ではUNIXベースのduコマンドが利用できる。

[デジタルアドバンテージ,著]
「Tech TIPS」のインデックス

連載目次

対象:Windows 2000/Windows XP、Windows Server 2003


解説

 各ユーザーがどのくらいファイルサーバ上のディスク領域を使用しているかとか、アプリケーションやデータの再配置などのために、どのフォルダにどのくらいのデータ(ファイル)が入っているかを調べたい、という要望は少なくない。このような場合は、例えばエクスプローラでフォルダ名を選択し、右クリックの[プロパティ]メニューを使うとそのフォルダで使用しているディスク領域のサイズを調べることができる。

[プロパティ]ダイアログによるフォルダ容量の確認 [プロパティ]ダイアログによるフォルダ容量の確認
エクスプローラでフォルダを選択して右クリックする。そしてポップアップメニューから[プロパティ]を選択すると、そのフォルダ中の総ファイルサイズ(サブフォルダも含む)が表示される。
  (1)対象となるフォルダ。
  (2)ファイルサイズの合計。
  (3)実際にディスク上で占有しているサイズ。圧縮ファイルなどが使われていると、ファイルサイズの合計よりも少なくなることがある。

 だがこの方法では、多数のフォルダがある場合には非常にわずらわしい。コマンドなどで簡単に調べられると便利である。このTIPSでは、このような目的に利用できる、2つのコマンドツールについて解説する。

操作方法

リソースキットツールのdiruseコマンド

 リソースキットツールには、diruseというコマンドが用意されており、これを使ってフォルダごとの使用量を簡単に調べることができる(これは次に紹介するduコマンドをベースにしているコマンドであるが、オプションや結果の表示方法などはかなり異なっている)。リソースキットツールの入手やインストール方法についてはTech TIPS「Windows OS向けリソースキットツールを入手する」を参照していただきたい。

 diruseの使い方は「diruse /?」で表示されるが、一番基本的な使い方は「diruse <フォルダ名>……」という方法である。これを実行すると、指定されたフォルダの中に含まれるファイルやサブフォルダをすべてスキャンし、その合計サイズが表示される(隠しファイルやシステムファイルのサイズも含まれる)。指定するフォルダはローカルのドライブだけでなく、UNC形式で指定してもよい(ただしこのコマンドを実行するためには、アクセスするフォルダやファイルに適切なアクセス権が必要)。

C:\>diruse \\server1\home\hiroh-n

    Size  (b)  Files  Directory
   1148018442   6687  SUB-TOTAL: \\SERVER1\HOME\HIROH-N
   1148018442   6687  TOTAL: \\SERVER1\HOME\HIROY-



 「SUB-TOTAL」は、指定されたフォルダ中の総ファイルサイズである。この例ではフォルダを1つしか指定していないが、複数指定した場合は、各SUB-TOTALの合計がTOTAL行に表示される。

 ところで左端に表示されている数値が結果(ファイルサイズの合計)であるが、けた数が多くて見づらい。MB単位にして、さらに3けたごとに「,」で区切るようにするには、「/m」と「/,」オプションを付けるとよい。

C:\>diruse /m /, \\server1\home\hiroh-n

    Size (mb)  Files  Directory
     1,094.84   6687  SUB-TOTAL: \\SERVER1\HOME\HIROH-N
     1,094.84   6687  TOTAL: \\SERVER1\HOME\HIROH-N



 この例では、指定した単一のフォルダのサイズしか表示されていないが、指定したフォルダ(例えばユーザーのホーム)中の各フォルダの総計を求めるには、さらに「/*」オプションを指定する。

C:\>diruse /* /m /, \\server1\home

    Size (mb)  Files  Directory
     1,977.71   2812  SUB-TOTAL: \\SERVER1\HOME\ako-z
     4,633.97    646  SUB-TOTAL: \\SERVER1\HOME\hiropo-x
     1,094.84   6687  SUB-TOTAL: \\SERVER1\HOME\hiroh-n
…(中略)…
     8,306.36  14834  SUB-TOTAL: \\SERVER1\HOME\yosho-a
    25,563.44  66303  TOTAL



 diruseにはこのほかにも、サブフォルダごとの詳細を表示させる「/s」オプションや、指定したサイズを超えていると行頭に「!」マークを表示させる「/q」オプション、圧縮ファイルの実ディスクサイズを基に合計を計算する「/c」オプション(デフォルトでは圧縮前のファイルサイズで計算する)、結果をログファイルに記録する「/l」オプションなども用意されているので、活用してほしい。

SFUのduコマンド

 du(「disk usage」の略)コマンドは、diruseの元となったコマンドであり、UNIXやLinuxでは広く一般的に使われている。Windows OS環境では、「Microsoft Windows Services for UNIX(以下SFU)」にこのduが含まれているので、SFUをインストールすれば利用することができる。SFUについてはTech TIPS「UNIX互換環境を実現するSFUを利用する」や「企業ユーザーのためのSFU 3.5活用ガイダンス」を参照していただきたい。

 SFUのduを使って、例えば「\\server1\home」というユーザーのホームディレクトリ以下のユーザーごとの使用量を調査するには、次のようにする(Windows OSにおけるUNCの「\\server1\home」は、SFUでは「/net/server1/home」と表現する)。ただしduはデフォルトでは1ブロック=512bytesのブロック単位で数えた使用量(ブロック数)を表示するようになっているので(これは初期のUNIX版duの仕様に基づいている)、「-k」オプションを付けてKB単位で表示させるのがよい。

% du -s -k /net/server1/usr/*
1122469 /net/server1/usr/hiroh-n
45707   /net/server1/usr/mako-u
2025833 /net/server1/usr/ako-z
…(中略)…
8508967 /net/server1/usr/yosho-a



「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。