目前我有一个系统可以备份到azure存储blob。在该blob中,我为每个客户备份提供了一个文件夹。我希望能够使用powershell / vb每天检查每个文件夹,以查看在过去48小时内是否有新文件,如果没有,则发送电子邮件警报哪个文件夹没有备份。我在我的生活中做了很少的编程,而我所做的就是很多个月前。有人可以帮助我开始吗?现在我能够做一个get-azurestorageblob,它显示所有文件及其目录和日期,但我不知道如何使用该信息来做我想做的事情。谢谢
输出到txt时,这是azure命令的一小部分样本。
名称BlobType长度ContentType LastModified SnapshotTime
---- -------- ------ ----------- ------------ --------- ---
80500 / backup113013 ... BlockBlob 3135490287 12/1/2013 3:26:39 ...
80500 / backup120113 ... BlockBlob 3133936105 12/2/2013 3:27:03 ...
80500 / backup120213 ... BlockBlob 3137539329 12/3/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 ...
答案 0 :(得分:2)
对于那些没有完成大量编程的人来说,你肯定已经做了很多,只是想弄清楚你可以使用哪些工具,以及让PowerShell与Azure一起走这么远。我认为您正在寻找的命令是:
Get-AzureStorageBlob -Container yourContainerName | Where-Object { $_.LastModified -lt ((Get-Date).AddHours(-48)) }
了解PowerShell的一件事是几乎所有命令输出实际上都是对象。控制台只是以文本形式显示给您。上面的命令正在执行的是从您运行的Get-AzureStorageBlob CmdLet中获取的所有内容,并使用Where-Object cmdlet运行检查,然后输出中包含符合条件的任何内容。在这种情况下,我使用Get-Date Cmdlet获取当前时间,减去48小时并检查Last Modified date属性。这将输出所有具有超过48小时的Last Modified属性的文件,这是我认为您正在寻找的。 p>
请记住,该命令的输出是一组对象,因此您可以创建一个包含其名称等的警报。
我强烈建议您使用PowerShell in Action或观看Pluralsight上的PowerShell简介课程。他们会帮助很多。