2010-11-25 11 views
0

私はいくつかのWindowsネットワーク共有ドライブの使用状況を監視するperlスクリプトを持っています。現在、cygwin dfコマンドを使用して、いくつかのネットワークドライブの空き容量を監視しています。個別のドライブ使用法も追加したいと思います。私が使用すると、cygwin perlでディレクトリ(と内容)のサイズをすばやく取得する方法

du -s | grep total 

コマンドが使用されます。サーバー上の1台のドライブから複数のネットワークドライブが共有されているため、共有ドライブの使用状況を確認する必要があります。したがって、1つのネットワークドライブをいっぱいにすると、それらはすべて満たされます(私は知っています、最良の解決策ではなく、私の選択ではありません)。

私は、これまでにないフォルダーの使用方法を手早く見つける方法があるかどうかを知りたいと思います。

答えて

1

1)問題はおそらく、ネットワークドライブ - ローカルduがほぼ確実に高速です。あなたはディスクが収納されている正確なサーバー上でduをやっていますか?そうでない場合は、別の角度から問題にアプローチしてください。ローカルのdu集計を計算するドライブをホストするすべてのサーバーでエージェントを実行し、合計を中央プロセスに報告します(IPCまたはheck、レポートをファイル同じ共有ファイルシステム上で)。

2)いずれかのドライブが他のドライブよりもかなり大きな領域を占めている場合は、duを「最大」以外の領域で最適化して最適化することができます。 dfから他の和を差し引いた結果

3)また、完全に正直なところ、デザインの観点からは最適ではない解決策のように思えますが、あなたの選択ではないことを示しましたが、質問を投稿することを強くおすすめしますどのようにあなたが与えられたパラメータ内のデザインを改善することができます(SOではなく、ServerFaultウェブサイトへ)

+0

はい、それはあなた次第です。私はそれを別の方法で行うオプションがあるかどうか、おそらくサーバー自体に何かを実装するかどうかを見ていきます。 – mor22

1

du -sは、すべてのディレクトリとファイルのサイズを再帰的に問い合せることによって機能します。ファイルシステムの実装がこの合計値をどこかに格納しない場合、これがディスク使用量を判断する唯一の方法です。したがって、使用しているファイルシステムとドライバを調査し、このデータを直接照会する方法があるかどうかを確認する必要があります。それ以外の場合は、あなたはおそらくSOLで、duを実行するのにかかる時間を吸う必要があります。

関連する問題