PowerShell Twoim przyjacielem jest! Robimy porządki w subskrypcji. cz. 2

Cześć. Mam nadzieję, że Twoja subskrypcja nadal żyje po przeczytaniu części 1. Zapraszam Cię na część drugą, gdzie kontynuujemy wątek usuwania tego, co niepotrzebne.

Dziś na warsztat weźmiemy:

Nawet jeśli te elementy nie kosztują dużo to ja lubię mieć porządek w subskrypcji 🙂

  • Usuwamy nieużywane Network Security Groups
#check if NSG is attached to any Network Interface
$nsgs=Get-AzureRmNetworkSecurityGroup | Where { $_.NetworkInterfaces.Count -eq 0 }

foreach ($nsg in $nsgs)
{
    Write-Host 'Deleting ' $nsg.Name

    #Remove-AzureRmNetworkSecurityGroup -Name $nsg.Name -ResourceGroupName $nsg.ResourceGroupName -Force
}
  • Usuwamy nieużywane dyski zarządzane
$disks=Get-AzureRmDisk 

foreach ($disk in $disks)
{
   
    if (!$disk.OwnerId) 
    {
        Write-Host 'Deleting ' $disk.Name
        #Remove-AzureRmDisk -DiskName $disk.Name -ResourceGroupName $disk.ResourceGroupName -Force
    }
}
  • I na koniec konta składowania danych. Zanim skrypt, słowo wyjaśnienia. Skrypt faktycznie pokaże konta, które nie zawierają żadnych kontenerów, ograniczy się tylko do zawartości Blob’owej. Często się jednak zdarza, że konto zawiera kontenery ale nie do końca wiemy ile zajmują przestrzeni ani co w nich jest. Skrypt pokaże nam wszystkie kontenery w ramach konta jak i zajmowaną przez nie wielkość w MB. Potraktuj proszę ten skrypt jako „starter” dla siebie. Jeśli chcesz wiedzieć jakie blob’y są na Twoim koncie, wystarczy drobna modyfikacja.
$sas=Get-AzureRmStorageAccount
$size = 0
$totalBlobSize=0
foreach ($sa in $sas) {
    $totalBlobSize=0
    Write-Host "Storage Account:" $sa.StorageAccountName
    $containers = Get-AzureStorageContainer -Context $sa.Context
        
    If (!$containers.Name) { Write-Host "This blob has no cotainers"}
    Else 
    {
        foreach ($container in $containers) {
            $listblobs = Get-AzureRmStorageAccount -ResourceGroupName $sa.ResourceGroupName -Name $sa.StorageAccountName -ErrorAction Ignore | Get-AzureStorageBlob -Container $container.Name
            foreach ($listblob in $listblobs) {$size = $size + $listblob.length}
            $size = $size/1024/1024
            $totalBlobSize = $totalBlobSize + $size
            Write-host $container.Name"| container size: $size MB. Last modified:" $listblob.LastModified
        }
    }
    Write-Host "Total storage account size: " $totalBlobSize "MB"
    [Environment]::NewLine
}

Przykład tego, co Wam pokaże skrypt, powyżej.

Miłego testowania i sprawdzania zasobów w Twojej subskrypcji!

Ten wpis został opublikowany w kategorii PowerShell i oznaczony tagami , , , . Dodaj zakładkę do bezpośredniego odnośnika.