加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 监视Windows目录大小

发布时间:2020-12-14 06:01:07 所属栏目:Java 来源:网络整理
导读:我正在寻找能够监视 Windows目录的大小和文件数量的东西.我说的是一些服务器和几千个文件夹(数百万个文件). 要求: X上的通知大小超过Y时间 X上的通知在Y时间内文件计数增加 大小和文件数的历史图形(或至少保存快照数据随时间变化) 所有这些都在一组目录及其
我正在寻找能够监视 Windows目录的大小和文件数量的东西.我说的是一些服务器和几千个文件夹(数百万个文件).

要求:

> X上的通知大小超过Y时间
> X上的通知在Y时间内文件计数增加
>大小和文件数的历史图形(或至少保存快照数据随时间变化)
>所有这些都在一组目录及其子目录中

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

解决方法

您可能需要查看 PolyMon,这是一个开源系统监控解决方案.它允许您以任何.NET语言编写自定义监视器,并允许您创建自定义PowerShell监视器.

它将数据存储在SQL Server后端并提供图形.出于您的目的,您只需要一个可以获取目录大小和文件数的脚本.
就像是:

$size = 0
$count = 0
$path = 'uncpathtodirectorytomonitor'
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监视器执行此操作,您可以安排定期运行,但要使脚本在后台运行,上述操作将起作用.您甚至可以添加一些数据库访问代码以将结果记录到数据库,或将其记录到文件中……您想要什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读