在日常管理的时候,经常会遇到这样的情况,领导想知道每个邮箱每天发送了多少封邮件?我们的服务器一天或者一个月发送多少邮件?又或者是服务器一天有多少发送失败的邮件,发往某一个地址有多少数量?近期平均邮箱数据库增长量是多少?这些部分可用Exchange图形实现部分不能实现,或者需要借助第三方工具来实现。统计收发邮件数量等这些有很博客里面已经写的很详细了,在这里重复介绍,下面我重点介绍如何统计邮箱数据库增长情况。
统计邮箱数据库服务器增长情况可以用这个脚本来实现:
# From date must be a MONDAY
$From = Get-Date "23/05/2011"
$To = $From.AddDays(7)
[Int64] $intTotalSentSize = $intTotalSent = 0
[Int64] $intTotalRecSize = $intTotalRec = 0
Write-Host "From, To, # Sent, Size Sent, # Received, Size Received"
Do
{
Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -Start $From -End $To | ForEach {
# Sent E-mails
If ($_.EventId -eq "RECEIVE" -and $_.Source -eq "STOREDRIVER")
{
$intTotalSentSize += $_.TotalBytes
$intTotalSent++
}
# Received E-mails
If ($_.EventId -eq "DELIVER")
{
$intTotalRecSize += $_.TotalBytes
$intTotalRec++
}
}
# Convert the size to MB and round it
$intTotalSentSize = [Math]::Round($intTotalSentSize/1MB, 0)
$intTotalRecSize = [Math]::Round($intTotalRecSize/1MB, 0)
# Create a TempTo variable as when we are searching the logs we search up to the next day, but we want to print the day before
$FromSmall = $From.ToShortDateString()
$TempTo = ($To.AddDays(-1)).ToShortDateString()
Write-Host "$FromSmall, $TempTo, $intTotalSent, $intTotalSentSize, $intTotalRec, $intTotalRecSize"
# Reset the variables to do another search
$From = $From.AddDays(7)
$To = $From.AddDays(7)
$intTotalSentSize = $intTotalSent = 0
$intTotalRecSize = $intTotalRec = 0
}
While ($To -lt (Get-Date))
此脚本可以按周统计每个周的接收和发送的邮件的总的大小,从而推测出每天邮件收发数据量的大小
这个脚本执行起来较简单,可以直接执行,时间可以根据需要更改
使用方法,
1、 将脚本文件“TotalEmailsSentReceivedPerWeek.ps1”复制到 邮箱数据库服务器C:\windows\system32文件夹下;
2、 以管理员身份打开Exchange命令行管理工具,连接到服务器后,输入TotalEmailsSentReceivedPerWeek.ps1,执行即可。
效果如下,依次显示起始时间,结束时间,发送,发送大小,接收,接收大小。
(时间是按一整周的时间来统计,测试环境下只在13年1月8号和9号发过邮件,故在2013/1/5,2013/1/11时间段有数据,并且发送和接收大小的单位为MB,故大小显示为零。)
统计出每周的邮件数据增长量之后,就可以推测每天发送邮件的数据量,从而对邮件大小设置,数据量增长情况以及存储配置进行合理的规划
本文转自legendfu51CTO博客,原文链接: http://blog.51cto.com/legendfu/1129970,如需转载请自行联系原作者