积极答复者
Exchange 2016脚本清除日志文件失败

问题
-
尝试以下两种方法清理,均未清理成功,有没有其他更好的方法实现自动清理安装目录下的logging文件夹下的日志文件?
方法一:清理失败:http://www.zhixing123.cn/computer/55327.html
方法二:使用以下脚本清理失败:
#---------------------------------脚本开始,将脚本内容另存为.ps1----------------------------------------------
Set-Executionpolicy RemoteSigned
$days=0
$IISLogPath="C:\inetpub\logs\LogFiles\"
$exinstallpath=$env:ExchangeInstallPath
$ExchangeLoggingPath="$exinstallpath\Logging\"
$ExchangeLoging_Monitoring="D:\Program Files\Microsoft\Exchange Server\V15\Mailbox\Logging"
$FrontendSMTPLog="D:\Program Files\Microsoft\Exchange Server\V15\Mailbox\TransportRoles\Logs\FrontEnd\ProtocolLog"
$ETLLoggingPath="$exinstallpath\Bin\Search\Ceres\Diagnostics\ETLTraces\"
$ETLLoggingPath2="$exinstallpath\Bin\Search\Ceres\Diagnostics\Logs"
Function CleanLogfiles($TargetFolder)
{
if (Test-Path $TargetFolder) {
$Now = Get-Date
$LastWrite = $Now.AddDays(-$days)
$Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl, *.txt –Recurse –Force | Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
{Write-Host "Deleting file $File" -ForegroundColor "white"; Remove-Item $File -ErrorAction SilentlyContinue | out-null}
}
Else {
Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "white"
}
}
CleanLogfiles($IISLogPath)
CleanLogfiles($ExchangeLoggingPath)
CleanLogfiles($ETLLoggingPath)
CleanLogfiles($ETLLoggingPath2)
CleanLogFiles($ExchangeLoging_Monitoring)
CleanLogfiles($FrontendSMTPLog)
答案
-
你好,
自动化的方案应该都与你上面提到的两种方法差不多。
你提到的第一种方案应该是很好的一种方法,不知道你在使用的过程中遇到什么问题?
我有在我的环境运行下面的指令,是可以成功清理部分日志的:
gci 'C:\Program Files\Microsoft\Exchange Server\V15\Logging' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-7) | Remove-Item
但是由于有些日志正在被其他进程占用,是无法被清理的,会收到如下图报错,表明有哪些具体的日志文件正在被占用导致删除失败,这个可能是你觉得没有清理成功的原因所在:
谢谢!
Niko Cheng
TechNet Community Support
Please remember to mark the replies as answers.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已标记为答案 席萌 2017年2月20日 1:47
全部回复
-
你好,
自动化的方案应该都与你上面提到的两种方法差不多。
你提到的第一种方案应该是很好的一种方法,不知道你在使用的过程中遇到什么问题?
我有在我的环境运行下面的指令,是可以成功清理部分日志的:
gci 'C:\Program Files\Microsoft\Exchange Server\V15\Logging' -Directory | gci -Include '*.log','*.blg' -Recurse | ? LastWriteTime -lt (Get-Date).AddDays(-7) | Remove-Item
但是由于有些日志正在被其他进程占用,是无法被清理的,会收到如下图报错,表明有哪些具体的日志文件正在被占用导致删除失败,这个可能是你觉得没有清理成功的原因所在:
谢谢!
Niko Cheng
TechNet Community Support
Please remember to mark the replies as answers.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已标记为答案 席萌 2017年2月20日 1:47
-
你好,
根据我的测试,这个可能是一直占用的。但是无法被清除的日志只是很少的一部分,大部分日志是可以使用该方案来清除的,所以还是值得一用的。
谢谢!
Niko Cheng
TechNet Community Support
Please remember to mark the replies as answers.
If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.- 已建议为答案 Niko.ChengModerator 2017年2月17日 9:09
-
针对日志的清理,我个人不太建议用脚本或是任务去自动执行,建议你在确认对你无用或是可以删除后再处理。
1.我的博客:http://blog.5dmail.net/user1/1/index.html 2.Exchange Server论坛 :http://www.5dmail.net/bbs/forum-35-1.html