您的位置:首页 > 运维架构 > Shell

删除过期的虚拟机VHD快照

2017-06-15 16:46 281 查看

删除过期的虚拟机VHD快照

$retdays可以定义要删除多少天前的快照
脚本运行截图:



PowerShell脚本内容如下:

#------------------------------------------------------------------------------
# User own the risk, otherwise exit.
#
# Azure PowerShell Version:  3.6.0
#
# Create by Zeno.
#------------------------------------------------------------------------------

#登录订阅
Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $(Get-Credential -UserName admin@xxx.partner.onmschina.cn -Message Login_AzureChinaCloud) |Out-Null

#定义删除多少天前的快照
$retdays = "1"

$storages = Get-AzureRmStorageAccount

foreach ($storage in $storages)
{
# get storage containers
$containers = Get-AzureStorageContainer -Context $storage.Context

foreach ($container in $containers)
{
#get blobs under all containers
$blobs = Get-AzureStorageBlob -Context $storage.Context -Container $container.Name | Where-Object {$_.Name.EndsWith("vhd")}

     foreach ($blob in $blobs)
     {
      $diff = [datetime]::FromBinary((Get-Date).Ticks - $blob.SnapshotTime.Ticks )
      if($blob.ICloudBlob.IsSnapshot -eq "True" -and $diff.Day -gt $retdays )
       {
        $blob.ICloudBlob.Delete()
Write-Host ("`n`t[DELETED] The snapshot 【{0}】 is {1} days ago" -f $blob.Name,$diff.Day) -ForegroundColor Yellow
      }
    }
  }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息