• 清除 Exchange 2013/2016/2019 日志和ETL文件


    Exchange Server  的2个日志目录会增长的很快,需要定时清理,不然C盘的空间很快就会吃光,以下这个powershell脚本就是用于清理目录下面的日志的,已在生产环境中测试过,没问题:

    Set-Executionpolicy RemoteSigned
    $days=0
    $IISLogPath="C:inetpublogsLogFiles"
    $ExchangeLoggingPath="C:Program FilesMicrosoftExchange ServerV15Logging"
    $ETLLoggingPath="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsETLTraces"
    $ETLLoggingPath2="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsLogs"
    Function CleanLogfiles($TargetFolder)
    {
        if (Test-Path $TargetFolder) {
            $Now = Get-Date
            $LastWrite = $Now.AddDays(-$days)
            $Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl, *.txt -Recurse | 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)

    以下这个powershell是修改版本,当用户没有对应的目录日志文件删除权限时也可以清理掉日志文件,如下:

    Set-Executionpolicy RemoteSigned
    $days=0
    $IISLogPath="C:inetpublogsLogFiles"
    $ExchangeLoggingPath="C:Program FilesMicrosoftExchange ServerV15Logging"
    $ETLLoggingPath="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsETLTraces"
    $ETLLoggingPath2="C:Program FilesMicrosoftExchange ServerV15BinSearchCeresDiagnosticsLogs"
    Function CleanLogfiles($TargetFolder)
    {
      write-host -debug -ForegroundColor Yellow -BackgroundColor Cyan $TargetFolder
    
        if (Test-Path $TargetFolder) {
            $Now = Get-Date
            $LastWrite = $Now.AddDays(-$days)
        #   $Files = Get-ChildItem $TargetFolder -Include *.log,*.blg, *.etl -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}
            $Files = Get-ChildItem "C:Program FilesMicrosoftExchange ServerV15Logging"  -Recurse | Where-Object {$_.Name -like "*.log" -or $_.Name -like "*.blg" -or $_.Name -like "*.etl"}  | where {$_.lastWriteTime -le "$lastwrite"} | Select-Object FullName  
            foreach ($File in $Files)
                {
                   $FullFileName = $File.FullName  
                   Write-Host "Deleting file $FullFileName" -ForegroundColor "yellow"; 
                    Remove-Item $FullFileName -ErrorAction SilentlyContinue | out-null
                }
           }
    Else {
        Write-Host "The folder $TargetFolder doesn't exist! Check the folder path!" -ForegroundColor "red"
        }
    }
    CleanLogfiles($IISLogPath)
    CleanLogfiles($ExchangeLoggingPath)
    CleanLogfiles($ETLLoggingPath)
    CleanLogfiles($ETLLoggingPath2)

    具体可以参考链接:https://gallery.technet.microsoft.com/clear-exchange-2013-log-71abba44

  • 相关阅读:
    WCF 、Web API 、 WCF REST 和 Web Service 的区别
    BusyIndicator using MVVM 忙碌状态指示器的的实现
    复制文件夹的方法 .net
    SQL/LINQ/Lamda
    CSLA验证规则总结
    C++中GB2312字符串和UTF-8之间的转换
    如何用VC编写供PB调用的DLL
    【转】lucene4.3.0 配置与调试
    cygwin主要命令
    【转】eclipse中window->preference选项中没有tomcat的解决方法
  • 原文地址:https://www.cnblogs.com/reachos/p/9704959.html
Copyright © 2020-2023  润新知