PowershellSistem

Powershell ve PowerCLI Modülünü Kullanarak Sanal Sunucuların Snapshot’ını Silme

Daha öncesinde Powershell ve PowerCLI Modülünü Kullanarak Sanal Sunucuların Snapshot’ını Alma – IT BackLogs yazısıyla elinizde listesi bulunan sunucuların toplu şekilde nasıl snapshotlarını alabileceğinizi anlattığımız bir yazıyı paylaşmıştık.

VMware tarafından best practices’ler de snapshotları 3 günden fazla tutulmaması gerektiğine yer verilmiş durumda buradan yola çıkarak sunucular üzerinde 3 günden eski olan snapshot’ları silen powershell kodumuzu yazalım;

# vCenter Sunucu Bilgileri
Connect-VIServer -Server Vcenter-Ip-Adres-veya-FQDN -User Bağlanıcak_KullanıcıAdı -Password Şifre

# Snapshot'ların bulunduğu VM'leri listele
$vmList = Get-VM

# Silinecek snapshot'lar için tarih hesapla (3 gün öncesinden önceki snapshot'lar)
$deleteDate = (Get-Date).AddDays(-3)

# Her bir VM üzerinde dön
foreach ($vm in $vmList) {
    # VM'nin snapshot'larını listele
    $snapshots = Get-VM $vm | Get-Snapshot

    # Her bir snapshot üzerinde dön
    foreach ($snapshot in $snapshots) {
        # Snapshot'ın oluşturulma tarihini al
        $snapshotCreateDate = $snapshot.Created

        # Eğer snapshot tarihi 3 günden eski ise, snapshot'ı sil
        if ($snapshotCreateDate -lt $deleteDate) {
            Write-Host "Snapshot siliniyor: $($snapshot.Name) on $($vm.Name) oluşturulma tarihi $($snapshotCreateDate)"
            Remove-Snapshot -Snapshot $snapshot -Confirm:$false
        }
    }
}

Daha önceki yazımızdan farklı olarak isminden anlaşılacağı üzere $deleteDate = (Get-Date).AddDays(-3) bugünün tarihinden 3 gün öncesini alıyoruz. Remove-Snapshot diyerek silmiş oluyoruz. Yaptığımız işlemlerin ne işe yaradığı genel olarak üzerlerinde yazıyor iyi okumalar dilerim.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu