Q

Windows 2000上の各アプリケーションが作成するログ・ファイル(*.log)を,NTFSの圧縮属性を付けて圧縮しています。この圧縮を現在はエクスプローラから手動で設定しているのですが,自動化することはできませんか?

A

NTFSでは,ディレクトリあるいはファイル単位で圧縮属性を設定できます。しかし,圧縮の設定をするとディスク領域は確かに節約できますが,ファイルの読み書きの度に圧縮/展開の処理をするため,CPUを消費しI/Oのパフォーマンスが悪化する可能性があるため利用にあたっては注意が必要です。

 その点,管理者がほとんど使用しない割には徐々にファイル数が増えたりサイズが大きくなってディスクを圧迫してしまうログ・ファイルを選択的に圧縮するのはよいアイデアです(テキスト・ファイルは圧縮率も高いので効果的)。


図1●NTFSを使っている場合はフォルダやファイルのプロパティで圧縮属性を設定できる

 NTFSの圧縮を設定するには,エクスプローラ上でディレクトリやファイルのプロパティ画面を使うのが一般的です(図1)。しかし,圧縮したいファイルの数が増えてくると手動での設定は面倒で間違いも起きがちです。Windows 2000/NTが標準で提供しているファイル圧縮属性を管理するコマンドcompact.exeを使用すれば,この作業を簡単に自動化できます。

 compact.exeは,/Cオプションを付けながらディレクトリやファイルを指定することで,圧縮属性を付加することができます。さらに,/Sオプションを付けてサブディレクトリを再帰的に検索したり,対象とするディレクトリ/ファイルの指定にワイルドカードを使用できるので,これらを併用すると便利です。

 例えば,C:\tmpディレクトリ内をサブディレクトリまで含めて検索して,.logという拡張子のファイルをすべて圧縮したい場合には,

compact /C /S:c:\tmp *.log

 と指定すればOKです。ちなみに,再帰的に検索する必要がなければcompact /C c:\tmp\*.logとなります。

 compact.exeの詳細はコマンド・プロンプトからcompact /?を実行するか,OSのヘルプを参照してください。

小森博司