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