Ins*_*oup 6 ruby java powershell perl groovy
我正在寻找能够监视Windows目录的大小和文件数量的东西.我说的是一些服务器和几千个文件夹(数百万个文件).
要求:
我更喜欢免费的解决方案,但也希望能指出正确的方向.如果我们自己写,我们将如何做呢?可用的语言是Ruby,Groovy,Java,Perl或PowerShell(因为我会编写它).
您可能想看看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}
Run Code Online (Sandbox Code Playgroud)
回复斯科特的评论:当然。你可以将它包装在 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
}
Run Code Online (Sandbox Code Playgroud)
我不会对 PowerShell 监视器执行此操作,您可以安排它定期运行,但对于在后台运行的脚本,上述方法可以工作。您甚至可以添加一些数据库访问代码以将结果记录到数据库中,或将其记录到文件中......无论您想要什么。
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |