6

Windows ディレクトリのサイズとファイル数を経時的に監視するものを探しています。私が話しているのは、少数のサーバーと数千のフォルダー (数百万のファイル) についてです。

要件:

  • Y 時間にわたる X のサイズの増加に関する通知
  • Y 時間にわたるファイル数の X 増加に関する通知
  • サイズとファイル数の履歴グラフ (または少なくとも経時的なスナップショット データの保存)
  • これらすべては、ディレクトリとその子ディレクトリのセットで

無料のソリューションを希望しますが、正しい方向に向けていただければ幸いです。自分で書くとしたら、どうやってそれを行うのでしょうか? 利用可能な言語は、Ruby、Groovy、Java、Perl、または PowerShell です (これは私が書いていたためです)。

4

4 に答える 4

4

いくつかの無料のものを含め、そこにはいくつかのソリューションがあります。私が取り組んできたものには次のものがあります。

ナギオスビッグブラザー

簡単なグーグル検索で、おそらくもっと見つけることができます。

于 2008-10-08T15:31:47.260 に答える
3

オープンソースのシステム監視ソリューションであるPolyMonをご覧になることをお勧めします。これにより、任意の.NET言語でカスタムモニターを作成でき、カスタムPowerShellモニターを作成できます。

SQL Serverバックエンドにデータを保存し、グラフを提供します。あなたの目的のために、あなたはただディレクトリサイズとファイル数を取得するスクリプトを必要とするでしょう。何かのようなもの:

$size = 0
$count = 0
$path = '\\unc\path\to\directory\to\monitor'
get-childitem -path $path -recurse | Where-Object {$_ -is [System.IO.FileInfo]} | ForEach-Object {$size += $_.length; $count += 1}

スコットのコメントへの返信:もちろんです。whileループでラップできます

$ESCkey  = 27
Write-Host "Press the ESC key to stop sniffing" -foregroundcolor "CYAN"
$Running=$true

While ($Running)
    { 
         if ($host.ui.RawUi.KeyAvailable) {
         $key = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyUp,IncludeKeyDown")
            if ($key.VirtualKeyCode -eq $ESCkey) { 
             $Running=$False
            }
         #rest of function here 
        } 

定期的に実行するようにスケジュールできるPowerShellモニターの場合はこれを行いませんが、スクリプトをバックグラウンドで実行する場合は、上記のように機能します。データベースアクセスコードを追加して、結果をデータベースに記録したり、ファイルに記録したりすることもできます。

于 2008-10-08T15:47:17.367 に答える
1

これは、PowerShell と WMI を使用して確実に実現できます。SQL Express のようなある種の DB バックエンドが必要になります。しかし、Polymon のようなツールの方が優れたアプローチであることに同意します。違いを生む可能性のある 1 つのことは、規模の問題です。1 つのサーバーまたは数百のサーバーで 1 つのフォルダーを監視する必要がありますか?

于 2008-10-08T18:43:15.890 に答える
0

http://sourceforge.net/projects/dirviewer/-DirViewerは、JGoodiesを使用したディレクトリツリービューと再帰的なディスク使用統計用の軽量で純粋なJavaアプリケーションです。ルックアンドフィールはWindowsXPに似ています。

于 2008-10-08T18:21:49.897 に答える