本文說明如何使用 Azure CLI 來管理和監視備份的 Azure 檔案(快照和入庫的備份)。 Azure CLI 提供管理 Azure 資源的命令行體驗。 其為組建自訂自動化以使用 Azure 資源的絕佳工具。 您也可以使用 Azure 入口網站、 Azure PowerShell、 REST API 來管理 Azure 檔案記憶體備份。
必要條件
本文假設您已有由 Azure Backup 備份的 Azure Files。 如果您沒有 Azure 檔案,請參閱 使用 CLI 備份 Azure 檔案 以設定檔案共用的備份。 在本文中,您將使用下列資源:
-
資源群組:
azurefiles - RecoveryServicesVault:azurefilesvault
- 儲存體帳戶:afsaccount
-
檔案共用:
azurefiles
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本教學課程需要 2.0.18 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
監視工作
在觸發備份程序或還原作業之後,備份服務會建立用於追蹤的作業。 若要監視已完成或目前正在執行的作業,請使用 az backup job list Cmdlet。 利用 CLI,您也可以暫停目前正在執行的工作,或等候直到作業完成。
下列範例會顯示 azurefilesvault 復原服務保存庫的備份作業狀態:
az backup job list --resource-group azurefiles --vault-name azurefilesvault
[
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
"location": null,
"name": "d477dfb6-b292-4f24-bb43-6b14e9d06ab5",
"properties": {
"actionsInfo": null,
"activityId": "3cef43ed-0af4-43e2-b9cb-1322c496ccb4",
"backupManagementType": "AzureStorage",
"duration": "0:00:29.718011",
"endTime": "2020-01-13T08:05:29.180606+00:00",
"entityFriendlyName": "azurefiles",
"errorDetails": null,
"extendedInfo": null,
"jobType": "AzureStorageJob",
"operation": "Backup",
"startTime": "2020-01-13T08:04:59.462595+00:00",
"status": "Completed",
"storageAccountName": "afsaccount",
"storageAccountVersion": "MicrosoftStorage"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
},
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupJobs/1b9399bf-c23c-4caa-933a-5fc2bf884519",
"location": null,
"name": "1b9399bf-c23c-4caa-933a-5fc2bf884519",
"properties": {
"actionsInfo": null,
"activityId": "2663449c-94f1-4735-aaf9-5bb991e7e00c",
"backupManagementType": "AzureStorage",
"duration": "0:00:28.145216",
"endTime": "2020-01-13T08:05:27.519826+00:00",
"entityFriendlyName": "azurefilesresource",
"errorDetails": null,
"extendedInfo": null,
"jobType": "AzureStorageJob",
"operation": "Backup",
"startTime": "2020-01-13T08:04:59.374610+00:00",
"status": "Completed",
"storageAccountName": "afsaccount",
"storageAccountVersion": "MicrosoftStorage"
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
}
]
建立備份原則
適用於 Azure 檔案的 Azure 備份原則會定義備份的建立方式和時間、恢復點的保留期間,以及數據保護和復原的規則。
選擇備份階層:
您可以使用下列參數來執行 az backup policy create 命令,以建立原則的備份副本:
- --backup-management-type – Azure 儲存體
- --工作負載類型 - AzureFileShare
- --name – 原則的名稱
- --policy - JSON 檔案,其中含有適當的排程和保留詳細資料
- --resource-group - 保存庫的資源群組
- --vault-name – 保存庫的名稱
範例
az backup policy create --resource-group azurefiles --vault-name azurefilesvault --name schedule20 --backup-management-type AzureStorage --policy samplepolicy.json --workload-type AzureFileShare
JSON 樣本 (samplepolicy.json)
{
"eTag": null,
"id": "/Subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/azurefiles/providers/Microsoft.RecoveryServices/vaults/azurefilesvault/backupPolicies/schedule20",
"location": null,
"name": "schedule20",
"properties": {
"backupManagementType": "AzureStorage",
"protectedItemsCount": 0,
"retentionPolicy": {
"dailySchedule": {
"retentionDuration": {
"count": 30,
"durationType": "Days"
},
"retentionTimes": [
"2020-01-05T08:00:00+00:00"
]
},
"monthlySchedule": null,
"retentionPolicyType": "LongTermRetentionPolicy",
"weeklySchedule": null,
"yearlySchedule": null
},
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunDays": null,
"scheduleRunFrequency": "Daily",
"scheduleRunTimes": [
"2020-01-05T08:00:00+00:00"
],
"scheduleWeeklyFrequency": 0
},
"timeZone": "UTC",
"workLoadType": “AzureFileShare”
},
"resourceGroup": "azurefiles",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupPolicies"
}
建立備份原則的範例,此原則一天會設定多個備份
此 JSON 樣本適用於下列需求:
- 排程:在接下來 12 小時內每 4 小時備份一次,從上午 8 點 (UTC) 開始。
- 保留期:每日 - 5 天、每週 - 每個星期日 12 週、每月 - 每個月的第一個星期日 60 個月,每年 - 每年 1 月的第一個星期日 10 年。
{
"properties":{
"backupManagementType": "AzureStorage",
"workloadType": "AzureFileShare",
"schedulePolicy": {
"schedulePolicyType": "SimpleSchedulePolicy",
"scheduleRunFrequency": "Hourly",
"hourlySchedule": {
"interval": 4,
"scheduleWindowStartTime": "2021-09-29T08:00:00.000Z",
"scheduleWindowDuration": 12
}
},
"timeZone": "UTC",
"retentionPolicy": {
"retentionPolicyType": "LongTermRetentionPolicy",
"dailySchedule": {
"retentionTimes": null,
"retentionDuration": {
"count": 5,
"durationType": "Days"
}
},
"weeklySchedule": {
"daysOfTheWeek": [
"Sunday"
],
"retentionTimes": null,
"retentionDuration": {
"count": 12,
"durationType": "Weeks"
}
},
"monthlySchedule": {
"retentionScheduleFormatType": "Weekly",
"retentionScheduleDaily": null,
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": null,
"retentionDuration": {
"count": 60,
"durationType": "Months"
}
},
"yearlySchedule": {
"retentionScheduleFormatType": "Weekly",
"monthsOfYear": [
"January"
],
"retentionScheduleDaily": null,
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": null,
"retentionDuration": {
"count": 10,
"durationType": "Years"
}
}
}
}
}
成功建立原則之後,命令的輸出會顯示您在執行命令時以參數形式傳遞的原則 JSON。
您可以視需要修改原則的 [排程] 和 [資料保留] 區段。
範例
如果您想要保留每個月第一個星期日的備份兩個月,請依照下列範例更新每月排程:
"monthlySchedule": {
"retentionDuration": {
"count": 2,
"durationType": "Months"
},
"retentionScheduleDaily": null,
"retentionScheduleFormatType": "Weekly",
"retentionScheduleWeekly": {
"daysOfTheWeek": [
"Sunday"
],
"weeksOfTheMonth": [
"First"
]
},
"retentionTimes": [
"2020-01-05T08:00:00+00:00"
]
}
修改原則
您可以使用 az backup item set-policy來修改備份原則,以變更備份作業頻率或保留範圍。
若要對原則進行變更,請定義下列參數:
- --container-name:裝載檔案共用的記憶體帳戶名稱。 若要擷取容器元素的名稱或自訂名稱,請使用 az backup container list 命令。
- --name:您要變更原則的檔案共享名稱。 若要擷取備份項目的名稱或自訂名稱,請使用 az backup item list 命令。
- --policy-name:您要為檔案共用設定的備份原則名稱。 您可以使用 az 備份原則清單 來檢視您保存庫中的所有原則。
下列範例會設定 afsaccount 記憶體帳戶中檔案共用的 azurefiles 備份原則。
az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --name "AzureFileShare;azurefiles" --backup-management-type azurestorage --out table
您也可以藉由提供下列兩個參數,使用容器和專案的易記名稱來執行上述命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup item set-policy --policy-name schedule2 --name azurefiles --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --name azurefiles --backup-management-type azurestorage --out table
Name ResourceGroup
------------------------------------ ---------------
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles
輸出中的 Name 屬性與備份服務為您的原則變更作業所建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
停止保護檔案共用
有兩種方式可以停止保護 Azure 檔案服務:
- 停止所有未來的備份作業並刪除所有復原點。
- 停止所有未來的備份作業但保留復原點。
由於 Azure 備份所建立的基礎快照集被保留,因此將恢復點保留在儲存中可能會產生費用。 如果您想要的話,離開恢復點的優點是稍後還原檔案共享的選項。 如需復原點保留成本的相關資訊,請參閱 定價詳細資料。 如果您選擇刪除所有恢復點,則無法還原檔案共用。
若要停止檔案共享的保護,請定義下列參數:
- --container-name:裝載檔案共用的記憶體帳戶名稱。 若要擷取容器元素的名稱或自訂名稱,請使用 az backup container list 命令。
- --item-name:您要停止保護的檔案共享名稱。 若要擷取備份項目的名稱或自訂名稱,請使用 az backup item list 命令。
停止資料保護並保留復原點
若要停止資料保護但對其進行保留,請使用 az backup protection disable Cmdlet。
下列範例會停止對azurefiles檔案共享的保護,但會保留所有恢復點。
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --out table
您也可以藉由提供下列兩個參數,使用容器和專案的易記名稱來執行上一個命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --out table
Name ResourceGroup
------------------------------------ ---------------
fec6f004-0e35-407f-9928-10a163f123e5 azurefiles
輸出中的 Name 屬性與備份服務為您停止保護作業所建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
停止保護也不保留復原點
若要停止保護也不要保留復原點,請使用az backup protection disable Cmdlet,並將 delete-backup-data 選項設定為 true。
下列範例會停止檔案分享azurefiles 的保護,而不保留恢復點。
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name “AzureFileShare;azurefiles” --delete-backup-data true --out table
您也可以藉由提供下列兩個參數,使用容器和專案的易記名稱來執行上一個命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection disable --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --delete-backup-data true --out table
繼續保護檔案共用
如果您停止保護 Azure 檔案服務,但保留恢復點,您可以稍後繼續保護。 如果您沒有保留復原點,就無法恢復保護作業。
若要繼續保護檔案共用,請定義下列參數:
- --container-name:裝載檔案共用的記憶體帳戶名稱。 若要擷取容器元素的名稱或自訂名稱,請使用 az backup container list 命令。
- --item-name:您要繼續保護的檔案共享名稱。 若要擷取備份項目的名稱或自訂名稱,請使用 az backup item list 命令。
- --policy-name:您要繼續檔案共用保護的備份原則名稱。
下列範例會使用 az backup protection resume Cmdlet,使用 azurefiles 備份原則繼續保護檔案共用。
az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount” --item-name “AzureFileShare;azurefiles” --policy-name schedule2 --out table
您也可以藉由提供下列兩個參數,使用容器和專案的易記名稱來執行上一個命令:
-
--backup-management-type:
azurestorage -
--workload-type:
azurefileshare
az backup protection resume --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --item-name azurefiles --workload-type azurefileshare --backup-management-type Azurestorage --policy-name schedule2 --out table
Name ResourceGroup
------------------------------------ ---------------
75115ab0-43b0-4065-8698-55022a234b7f azurefiles
輸出中的 Name 屬性與備份服務為您恢復保護作業所建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
取消註冊儲存體帳戶
如果您想要使用不同的復原服務保存庫來保護特定記憶體帳戶中的檔案共用,請先停止保護該儲存器帳戶 中的所有檔案共用 。 然後請從目前用於保護的復原服務保存庫取消註冊帳戶。
您需要提供容器元素名稱以對於儲存體帳戶取消註冊。 若要擷取容器元素的名稱或自訂名稱,請使用 az backup container list 命令。
下列範例會使用 az backup container 取消註冊 Cmdlet,從 azurefilesvault 中對於 afsaccount 儲存體帳戶取消註冊。
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --out table
您也可以使用容器的易記名稱來執行先前的 Cmdlet,只需再提供一個額外的參數:
-
--backup-management-type:
azurestorage
az backup container unregister --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --out table