2013-12-03 4 views
2

В настоящее время у меня есть система, которая делает резервные копии для лазурного хранилища. Внутри этого блоба у меня есть папка для каждого резервного копирования клиентов. Я хотел бы иметь возможность использовать powershell/vb для ежедневной проверки каждой папки, чтобы узнать, есть ли новый файл за последние 48 часов, и если не отправлять электронную почту с предупреждением о том, в какой папке нет резервной копии. Я сделал очень мало программирования в своей жизни, и то, что я сделал, было много лет назад. Может кто-нибудь поможет мне начать? Сейчас я могу сделать get-azurestorageblob, который показывает все файлы с их каталогами и датами, но я не знаю, как использовать эту информацию для выполнения того, что я хочу делать. СпасибоAzure Powershell Alerting

Вот небольшой образец команды azure при выводе на txt.

Название BlobType Length ContentType LastModified SnapshotTime
---- -------- ------ ----------- --------- --- ------------
80500/backup113013 ... BlockBlob 3135490287 01.12.2011 3:26:39 ...
80500/backup120113 ... BlockBlob 3133936105 12/2/2013 3:27:03 ...
80500/backup120213 ... BlockBlob 3137539329 03/12/2013 3:27:18 ...
90407/backup110113 ... BlockBlob 2484494132 11/2/2013 4 : 21: 14 ...
90407/backup110213 ... BlockBlob 2484510293 11/3/2013 4:22:00 ...
90407/backup110313 ... BlockBlob 2484429713 11/4/2013 5:22:10 ...
90407/backup110413 ... BlockBlob 2484406856 11/5/2013 5:22:46 ...

ответ

2

Для тех, кто не много программировал, вы, конечно, сделали это довольно просто, выяснив, какие инструменты вы можете использовать, и получить PowerShell с Azure, идущим так далеко. Я думаю, что команда, которую вы ищете это:

Get-AzureStorageBlob -Container yourContainerName | Where-Object { $_.LastModified -lt ((Get-Date).AddHours(-48)) } 

Одна вещь, чтобы знать о PowerShell почти все выходные данные команд на самом деле являются объектами. Консоль просто отображает их вам в тексте. То, что делает вышеприведенная команда, - это все, что вышло из Get-AzureStorageBlob CmdLet, которое вы запускали и выполняли проверку с помощью командлета Where-Object, и все, что соответствует критериям, затем включается в вывод. В этом случае я использую Командлет Get-Date для получения текущего времени, вычитая 48 часов и проверяя свойство Last Modified date. Это приведет к вывозу всех файлов с последним измененным свойством более 48 часов, что, как я думаю, вы ищете.

Помните, что выход из этой команды представляет собой совокупность объектов, так что вы могли бы создать оповещение, который включал их имена и т.д.

я настоятельно рекомендую собирание PowerShell в действии или смотреть интро Курс PowerShell на Pluralsight. Они помогут ЛОТ.

+0

Удивительно, это похоже на то, что мне нужно. Следующим шагом будет отправка электронной почты, если файл не существует в папке, которая находится в течение 48 часов. Будет ли это что-то, что я могу сделать в PowerShell, в рамках одного сценария? Я обязательно посмотрю на этот курс и начну обучение. – David

+1

Для этого есть командлет: send-mailmessage. :) – MikeWo

+0

Спасибо, я постараюсь понять это. – David