Как установить период хранения моментального снимка общего доступа к файлам с помощью планировщика Azure Automation?
Я хочу установить срок хранения снимка общего ресурса файлов с помощью планировщика Azure Automation. 1, могу ли я установить график создания и удаления снимка на одном Runbook. (например, создать один снимок сегодня и удалить его через месяц). 2, я хочу получить снимки по каждому дню, неделе и месяцу, могу ли я решить, сохранить время. (Например, сохраняйте ежедневный снимок на 15 дней, еженедельный снимок на 35 дней и Ежемесячный снимок на 13 месяцев).
3. Если это так сложно, могу ли я решить снимки, которые я хочу удалить, как и предыдущие 10. Если вы знаете что-то об этом, пожалуйста, напишите несколько комментариев ниже, большое спасибо.
1 ответ
Некоторая информация для вас, чтобы ссылаться.
Попробуйте команду ниже, чтобы создать снимок, для его рабочей частоты, вы можете создать расписание для 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()
}
}