top of page
  • Berat Bey

Exchange log temizliği (2013, 2016, 2019)

Güncelleme tarihi: 4 Nis 2023


Selamlar,

Exchange mail sunucuları doğası gereği her şeyi kayıt altında tutmak ister ve exhange sunucu kurulumu sırasında varsayılan olarak bırakılan log dosyası yolları daha sonradan C diskinin şişmesine neden olmaktadır. Kontrol edilmediği zaman performans sorunlarına hatta mail trafiğinin durmasına neden olabilmektedir. Exchange loglarını belirli aralıkla kendimiz bir script ile silebilir ya da görev zamanlayıcısı ile belirli aralıklarla sunucuya yaptırabiliriz. Bunun için alttaki adımları izlemeniz yeterlidir.


1- Microsoft'un destek sayfalarında da bulabileceğiniz alttaki metni kopyalayarak boş bir not defterine yapıştırın. Farklı kaydet seçeneği ile adını exchangelogs.ps1 olarak kaydedin. 2. satırda bulunan 20 sayısı, 20 günden eski kayıtların silineceği anlamına gelmektedir. Kendinize değiştirebilirsiniz.


Set-Executionpolicy -Scope CurrentUser RemoteSigned

$days=20

$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\�

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 {$_.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)


2- Exchange sunucusunda C diski altında sct adında bir dosya oluşturun. Bu dosyanın içerisine kaydettiğiniz exchangelogs.ps1 dosyasını koyun.


3- Powershell uygulamasını yönetici olarak başlatın. Sırayla alttaki komutları kopyalayıp yapıştırın. İşlemin bitmesi log dosyalarının boyutuna göre farklılık gösterecektir. Bitmesini bekleyin.


Set-Location -Path C:\sct

.\exchangelogs.ps1


4- Dilerseniz oluşturduğunuz exchangelogs.ps1 dosyasını Görev Zamanlayıcısına (Task Schedular) ekleyerek belirli aralıklarla otomatik çalışmasını sağlayabilirsiniz. Bunun için Hakan Uzuner'in yazısını takip edebilirsiniz.






54 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

List all SMTP addresses with PowerShell

Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -repl

Comments


bottom of page