当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 清理日志 Exchange 2013/2016/2019

作者:精品下载站 日期:2024-12-14 18:06:25 浏览:12 分类:玩电脑

清理日志 Exchange 2013/2016/2019


从 Exchange 2013 及更高版本开始,日志在 Windows Server 上占用更多空间。这就是清理日志 Exchange 2013/2016/2019 脚本发挥重要作用的时候。使用 PowerShell 清除 Exchange 日志并获取 Exchange Server 上的可用空间。这些日志不是数据库日志!您可以安全地删除这些日志。事实上,我建议您删除它们。

当您需要更多信息并希望在遇到问题时查看日志时,日志非常有用。 Microsoft Exchange 服务器很容易就被所有这些日志填满。最好的方法是清除日志,因为您需要释放磁盘上的一些空间。

准备清理日志 Exchange 脚本

复制以下代码并将其粘贴到记事本中。将文件类型保存为 CleanupLogs.ps1。您还可以下载 CleanupLogs.ps1 脚本(直接链接)。如果没有提示您保存文件,请右键单击 CleanupLogs.ps1,然后单击链接另存为。您应该能够保存脚本。

# Set execution policy if not set
$ExecutionPolicy = Get-ExecutionPolicy
if ($ExecutionPolicy -ne "RemoteSigned") {
    Set-ExecutionPolicy RemoteSigned -Force
}

# Cleanup logs older than the set of days in numbers
$days = 2

# Path of the logs that you like to cleanup
$IISLogPath = "C:\inetpub\logs\LogFiles\"
$ExchangeLoggingPath = "C:\Program Files\Microsoft\Exchange Server\V15\Logging\"
$ETLLoggingPath = "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\ETLTraces\"
$ETLLoggingPath2 = "C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\Logs\"

# Clean the logs
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 -Recurse | Where-Object { $_.Name -like "*.log" -or $_.Name -like "*.blg" -or $_.Name -like "*.etl" } | Where-Object { $_.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)

确保更改第 8 行。目前,它设置为 $days=2。这意味着它将清除 Exchange 服务器上超过 2 天的日志。

如果您更改了 Exchange 配置的路径,请更改第 11、12、13 和 14 行中的路径。

将文件保存在 Exchange Server 上的以下路径 C:\scripts\ 中。将其命名为CleanupLogs.ps1

授予您的帐户访问以下四个文件夹的权限。如果脚本没有权限,它将不会清除该文件夹中的日志。我建议在 Active Directory 中创建一个服务帐户。授予服务用户帐户对以下四个文件夹的读/写权限。创建计划任务以清除每天使用服务用户帐户运行的 Exchange 日志。

C:\inetpub\logs\LogFiles\
C:\Program Files\Microsoft\Exchange Server\V15\Logging\
C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\ETLTraces\
C:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Diagnostics\Logs\

运行清理日志 Exchange 脚本

让我们看看脚本会清除多少。

运行清理日志脚本之前

在运行脚本之前,请查看驱动器上有多少可用空间。请参阅之前清理屏幕。

以管理员身份运行脚本。右键点击文件 CleanupLogs.ps1,然后点击使用 PowerShell 运行。将显示 PowerShell 窗口,并且脚本正在清理日志。等待 PowerShell 窗口从屏幕上消失。这意味着剧本已经完成。

运行清理日志脚本后

再次查看驱动器上有多少可用空间。请参阅清理后屏幕。

该脚本清理了 14GB 的 Exchange 日志。清理日志 Exchange 脚本对您有帮助吗?

注意:您喜欢自动化脚本吗?阅读有关如何使用计划任务自动清理 Exchange 日志的更多信息。

结论

您了解了如何使用 PowerShell 清除 Exchange 日志。这是一个很棒的脚本,可以清理 Exchange 2013/2016/2019 上的日志并获取可用空间。不要忘记创建一个计划任务来清理 Exchange Server 上的日志,以自动化该过程。

您喜欢这篇文章吗?您可能还喜欢将 Exchange 数据库移动到另一个驱动器。不要忘记关注我们并分享这篇文章。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯