Несколько лет управляю скромным сервером SBS 2003. Наша сетевая политика настроена на хранение профилей пользователей и папки «Мои документы» на сервере. В последнее время диск сервера заполнялся, и запуск WinDirStat каждые несколько недель позволил мне решить эту проблему, идентифицируя большие файлы и заботясь о них индивидуально.
Есть ли инструмент мониторинга, который проактивно ищет большие файлы (созданные недавно) и имеет встроенную систему отчетов / уведомлений, чтобы пинговать меня при создании больших файлов (возможно,> 100 МБ?)
Или есть программа / сценарий для фильтрации файлов и папок таким образом, чтобы они упорядочивали их таким образом, чтобы иметь большой вес во время создания файла VS размер файла?
Я искал вокруг и не могу найти инструмент Windows, который делает это.
Диспетчер ресурсов файлового сервера сделает то, что вы ищете.
Как установить на SBS 2003 R2 Вот.
Вы бы хотели создать File Screen Template
и перейти оттуда:
Это также можно сделать с помощью сценария Powershell, который также должен работать для вас:
#------------------------------------------------------------
# LargeFiles.CSV
# Server = Server name without any slashes. Full UNC name can be used
# Path = Can be any path but if you are using the administrative shares be
# sure to use the "$"
# Example:) L$\share\path\folder\etc or L$
#------------------------------------------------------------
#Get-ChildItem L:\ -Recurse | Where-Object {$_.Length -gt 10GB} | Select-Object @{Name="GB";Expression={$_.Length / 1GB}},Name
$FromAddress = "FromEmailAddress"
$ToAddress = "ToEmailAddress"
$MessageSubject = "Large Files Found"
$SendingServer = "SMTPServer.domain.local"
function CreateLargeFilesCSV
{
Write-Host "--------------------------------------------------------`r" -foreground yellow
Write-Host "The LargeFiles.csv file did not exist. This was created for you.`r" -foreground yellow
Write-Host "You must now populate this file with the proper information,`r" -foreground yellow
Write-Host "See files for more details.`r" -foreground yellow
New-Item LargeFiles.csv -type file
Add-Content LargeFiles.csv "Server,Path"
Add-Content LargeFiles.csv "SQL1,I$"
Add-Content LargeFiles.csv "SQL1,K$\Sharename\folder\etc"
}
function CheckSize
{
foreach ($result in $results)
{
$strServer = $result.Server
$strServer = "\\$strServer\"
$strPath = $result.Path
$strPath = "$strPath"
$strMaxFileSize = $result.MaxFileSize
Get-ChildItem $strServer$strPath -Recurse | Where-Object {$_.Length -gt 10GB} | Select-Object Name,@{Name="Size(GB)";Expression={"{0:N2}" -f ($_.Length/1GB)}},@{Name="Server";Expression={$strServer}},@{Name="Path";Expression={$strPath}} | ConvertTO-HTML | Format-Table -AutoSize | Out-File Results.txt -append
}
}
if (Test-Path LargeFiles.csv)
{
$Results = Import-CSV LargeFiles.csv | Select Server,Path
CheckSize
}
else
{
CreateLargeFilesCSV
}
$Answer = Get-Content Results.txt | Select-String "</colgroup>" -quiet
If ($Answer -eq $true)
{
Write-Host "Found some large files"
$MessageBody = (Get-Content Results.txt | out-string)
$MessageBody = "Found some large files. Below is a list of these files`n$MessageBody"
Remove-Item Results.txt
###Create the mail message
$SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody
$SMTPMessage.IsBodyHTML = $true
###Send the message
$SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
$SMTPClient.Send($SMTPMessage)
}
Else
{
Write-Host "Nothing to send"
Remove-Item Results.txt
}
- See more at: http://it-erate.com/hunting-alerting-large-files-powershell/#sthash.XI56yxdl.dpuf