如何通过Azure自动化使用计划程序设置“文件共享”快照的保留期?

时间:2018-12-17 07:09:27

标签: azure snapshot azure-automation fileshare

我想通过Azure自动化程序使用计划程序设置“文件共享”快照的保留期。 1,我可以在一个运行簿中设置创建和删除快照的时间表。 (例如,今天创建一个快照,一个月后将其删除)。 2,我想按每天,每周和每月获取一些快照,我可以决定保留时间。 (例如,将每日快照保留15天,将每周快照保留35天,将每月快照保留13个月)。
3,如果是如此困难,我可以像以前的10一样决定要删除的快照。如果您对此有所了解,请在下面写下一些评论,非常感谢。

1 个答案:

答案 0 :(得分:1)

一些信息供您参考。

请尝试使用以下命令创建快照,就其运行频率而言,您可以create a schedule for the runbook

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$SAResourceGroupName="joywebapp"
$StorageAccountName="joystoragev2"
$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
$context=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey

$share = Get-AzureStorageShare -Context $context -Name "111"
$snapshot = $share.Snapshot()

删除一个月前创建的快照:

$allsnapshots = Get-AzureStorageShare -Context $context | Where-Object { $_.Name -eq "111" -and $_.IsSnapshot -eq $true }


foreach($snapshot in $allsnapshots){
    if($snapshot.SnapshotTime -lt (get-date).AddMonths(-1)){
        $snapshot.Delete()
    }
}