【问题标题】:Monitoring Windows directory size监控 Windows 目录大小
【发布时间】:2010-09-16 01:10:32
【问题描述】:

我正在寻找能够随着时间的推移监控 Windows 目录大小和文件计数的东西。我说的是少数服务器和几千个文件夹(数百万个文件)。

要求:

  • X 大小随 Y 时间增加的通知
  • 关于文件计数在 Y 时间增加 X 的通知
  • 大小和文件计数的历史图形(或至少随着时间的推移保存快照数据)
  • 所有这些都在一组目录及其子目录中

我更喜欢免费的解决方案,但也希望能指出正确的方向。如果我们要自己写,我们会怎么做呢?可用的语言有 Ruby、Groovy、Java、Perl 或 PowerShell(因为我会写它)。

【问题讨论】:

  • 我可以在 C# 中很容易地做到这一点(因为那是我有 exp 的地方)但这对你没有帮助,抱歉。该技术涉及编写一个收集数据的服务。然后,您的应用可以在需要时访问数据。
  • 克雷格,你愿意发布如何在 C# 中做到这一点吗?我对 C# 或 .NET 一点都不熟悉,但我不认为我们 100% 不可能将其用作解决方案,只是不是首选!
  • 一般来说,如果你可以在 C# 中完成,那么无论如何你都可以在 powershell 中完成。

标签: java ruby perl powershell groovy


【解决方案1】:

有几种解决方案,包括一些免费的。我合作过的一些包括:

NagiosBig Brother

快速谷歌搜索可能会找到更多。

【讨论】:

    【解决方案2】:

    您可能想看看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 监视器执行此操作,您可以安排它定期运行,但对于在后台运行的脚本,上述方法可以工作。您甚至可以添加一些数据库访问代码来将结果记录到数据库中,或者将其记录到文件中……随心所欲。

    【讨论】:

    • 非常酷!在 PowerShell 中,是否可以将其放入某种不断运行的循环中?
    【解决方案3】:

    您当然可以使用 PowerShell 和 WMI 完成此操作。您将需要某种数据库后端,例如 SQL Express。但我同意像 Polymon 这样的工具是一种更好的方法。可能会产生影响的一件事是规模问题。您需要监控 1 个服务器上的 1 个文件夹还是数百个?

    【讨论】:

    • 编辑回答...少数服务器,数千个文件夹(数百万个文件)。
    【解决方案4】:

    http://sourceforge.net/projects/dirviewer/ -- DirViewer 是一个轻量级的纯 java 应用程序,用于目录树视图和递归磁盘使用统计,使用 JGoodies-Looks 的外观和感觉类似于 windows XP。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多