Я хочу установить срок хранения моментального снимка общего доступа к файлам с помощью планировщика службы автоматизации Azure. 1. Могу я установить расписание создания и удаления моментального снимка в одном модуле Runbook. (например, создать один снимок сегодня и удалить его через месяц). 2, я хочу получать снимки на каждый день, неделю и месяц, могу ли я выбрать время сохранения. (Например, сохраняйте ежедневный снимок 15 дней, еженедельный снимок 35 дней и ежемесячный снимок 13 месяцев).
3, Если это так сложно, могу ли я выбрать снимки, которые я хочу удалить, как предыдущие 10. Если вы знаете что-нибудь об этом, напишите, пожалуйста, несколько комментариев ниже, большое спасибо.
Как установить период хранения снимка общего доступа к файлам с помощью планировщика службы автоматизации Azure?
comment
Не могли бы вы включить в свой вопрос более подробную информацию? Что ты пробовал?
- person Joy Wang   schedule 17.12.2018
comment
Спасибо, Джой Ван. Я добавляю несколько комментариев, если вы что-то знаете об этом, напишите, пожалуйста, здесь. Еще раз спасибо.
- person Arthur   schedule 17.12.2018
Ответы (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()
}
}
person
Joy Wang
schedule
17.12.2018
Большое спасибо, только что я попытался удалить снимки, используя команду, которую вы указали. Но все снимки были удалены, могу я использовать одну оболочку PowerShell для создания снимка, а затем просто удалить его через месяц.
- person Arthur; 18.12.2018
И в прошлый раз, когда кто-то поделился командой для создания снимка, есть ли какая-то разница? $ context = New-AzureStorageContext -StorageAccountName your_storage_account -StorageAccountKey your_storage_account_key $ share = Get-AzureStorageShare -Context $ context -Name your_file_share_name $ snapshot = $ share.Snapshot ()
- person Arthur; 18.12.2018
@Arthur 1. Он должен работать, я тестирую с
if($snapshot.SnapshotTime -lt (get-date).AddHours(-1))
, чтобы удалить снимки, созданные до часа, он работает нормально, измените AddHours
на AddMonths
, он должен удалить снимки, созданные до одного месяца.
- person Joy Wang; 18.12.2018
@ Joy Wang, Большое спасибо, я тестирую его тоже с одним часом, я объединяю команду создания и удаления в одной оболочке PowerShell, она может работать, но она удалила другой снимок (предыдущий), поэтому я думаю, что это из-за Создать команду (я использовал вашу команду, но есть некоторая ошибка в отношении $ SAResourceGroupName и Value [1], поэтому я использовал простую, которую я опубликовал вверху).
- person Arthur; 18.12.2018
@Arthur Не уверен, почему у вас возникла ошибка, у меня все работает нормально, и я тестирую создание и удаление в двух разных модулях Runbook, вы можете попробовать.
- person Joy Wang; 18.12.2018
Знаете ли вы, как удалить моментальный снимок встречи, например, просто удалить моментальный снимок через 1 месяц, который я создаю сегодня, но не повлияет на другие снимки, потому что я буду хранить разные снимки с разными периодами хранения.
- person Arthur; 18.12.2018
Устал делать их в одном runbook, может хорошо работать. Теперь я хочу изменить команду $ allsnapshots на ту, которую я создал ранее. Но есть ошибка, я плохо разбираюсь в командлетах. Большое спасибо, Джой.
- person Arthur; 18.12.2018
@Arthur Это кажется труднодостижимым. Моментальные снимки можно отличить только по
SnapshotTime
, мой обходной путь - создание моментального снимка и получение его SnapshotTime
, нового модуля Runbook с расписанием для его удаления через месяц.
- person Joy Wang; 18.12.2018
@Arthur Может быть, вы могли бы задать конкретный вопрос об удалении снимков разными способами в другом посте, если мой ответ будет полезен, не могли бы вы принять его в качестве ответа?
- person Joy Wang; 18.12.2018
Привет, у меня есть вопрос, я хочу уточнить у вас. вчера вы сказали, что тестируете с помощью ** if ($ snapshot.SnapshotTime -lt (get-date) .AddHours (-1)), чтобы удалить снимки, созданные до часа, он отлично работает. ** Значит, это означает, что эта команда используется для удаления снимков, созданных до часа, а не для удаления нового, а затем для его удаления через час, верно? Я тестировал и обнаружил, что он удалит все существующие снимки, а не через несколько часов или месяцев. Вы можете это объяснить? Благодарность
- person Arthur; 19.12.2018
@Arthur Да, используется для удаления снимков, созданных до часа. Я тестирую создание и удаление в двух разных модулях Runbook, он просто удалит снимки, созданные до часа, а не все снимки экрана. Не знаю, почему вам это пришло в голову.
- person Joy Wang; 19.12.2018
жаль, что я сделал ошибку. ты можешь изменить свой ответ? Может быть, лучше сказать Удалить снимки, созданные до одного месяца :, спасибо.
- person Arthur; 19.12.2018
@Arthur Done, кажется, разница между ними небольшая.
- person Joy Wang; 19.12.2018