2013-12-03 112 views
2

目前我有一個系統可以備份到蔚藍存儲blob。在該blob中,我爲每個客戶備份都有一個文件夾。我希望能夠使用powershell/vb每天檢查每個文件夾,以查看在過去48小時內是否有新文件,並且如果不發送電子郵件提醒哪個文件夾沒有備份。在我的生活中,我做了很少的編程,而且我所做的是在很久以前。有人可以幫我開始嗎?現在我能夠做一個get-azurestorageblob,它顯示所有文件的目錄和日期,但我不知道如何使用這些信息來做我想做的事情。謝謝Azure Powershell警報

這是輸出到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 2013/12/3 3:27:18 ...
90407/backup110113 ... BlockBlob 2484494132 2013年2月2日4 :21:14 ...
90407/backup110213 ... BlockBlob 2484510293 11/3/2013 4:22:00 ...
90407/backup110313 ... BlockBlob 2484429713 2013年11月4日5時22分10秒...
90407/backup110413 ... BlockBlob 2484406856 2013年11月5日5時22分46秒......

回答

2

對於那些沒有進行大量編程的人來說,你確實已經做出了很大的貢獻,只是想清楚你可以使用哪些工具,並將Azure中的PowerShell變得如此之多。我認爲你正在尋找的命令是這樣的:

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日期屬性。這將輸出所有上次修改時間屬性大於48小時的文件,這是我認爲您正在尋找的內容。

請記住,該命令的輸出對象的集合,這樣就可以建立一個警報,其中包括他們的姓名等

我強烈建議在行動中撿的PowerShell或觀看簡介關於Pluralsight的PowerShell課程。他們將幫助很多。

+0

太棒了,這看起來正是我所需要的。如果文件不在48小時內的文件夾中,我的下一步就是發送電子郵件。這是我可以在PowerShell中做到的,在一個腳本中嗎?我一定會看看這門課,並開始一些培訓。 – David

+1

有一個cmdlet:send-mailmessage。 :) – MikeWo

+0

謝謝,我會盡力弄清楚。 – David