使用 Azure CLI 來還原 Azure 檔案共用
Azure CLI 提供用於管理 Azure 資源的命令列體驗。 它是建置自訂的自動化以使用 Azure 資源的絕佳工具。 本文描述如何藉由使用 Azure CLI,從 Azure 備份建立的還原點來還原整個檔案共用或特定檔案。 您也可以透過 Azure PowerShell 或在 Azure 入口網站中執行這些步驟。
在本文結束時,您將了解如何使用 Azure CLI 來執行下列作業:
- 檢視備份 Azure 檔案共用的還原點。
- 還原完整的 Azure 檔案共用。
- 還原個別檔案或資料夾。
注意
Azure 備份目前支援使用 Azure CLI 將多個檔案或資料夾還原至原始或替代位置。 若要深入了解,請參閱本文件的將多個檔案或資料夾還原至原始或替代位置一節。
必要條件
本文假設您已建立由 Azure 備份所備份的 Azure 檔案共用。 如果您尚未建立,請參閱使用 CLI 備份 Azure 檔案共用,以設定檔案共用的備份。 在本文中,您將使用下列資源:
檔案共用 | 儲存體帳戶 | 區域 | 詳細資料 |
---|---|---|---|
azurefiles | afsaccount | EastUS | 使用 Azure 備份所備份的原始來源 |
azurefiles1 | afaccount1 | EastUS | 用於替代位置復原的目的地來源 |
您可以為您的檔案共用使用類似的結構,以嘗試本文所述的不同類型還原。
備妥環境以使用 Azure CLI
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本教學課程需要 2.0.18 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。
擷取 Azure 檔案共用的復原點
使用 az backup recoverypoint list Cmdlet 來列出已備份檔案共用的所有復原點。
下列範例會針對 afsaccount 儲存體帳戶中的 azurefiles 檔案共用,擷取復原點的清單。
az backup recoverypoint list --vault-name azurefilesvault --resource-group azurefiles --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --backup-management-type azurestorage --item-name "AzureFileShare;azurefiles" --workload-type azurefileshare --out table
您也可以使用容器元素和項目的自訂名稱來執行上一個 Cmdlet,方法是提供下列兩個額外的參數:
- --backup-management-type:azurestorage
- --workload-type:azurefileshare
az backup recoverypoint list --vault-name azurefilesvault --resource-group azurefiles --container-name afsaccount --backup-management-type azurestorage --item-name azurefiles --workload-type azurefileshare --out table
結果集是包含每個還原點的時間與一致性詳細資料的復原點清單。
Name Time Consistency
------------------ ------------------------- --------------------
932887541532871865 2020-01-05T07:08:23+00:00 FileSystemConsistent
932885927361238054 2020-01-05T07:08:10+00:00 FileSystemConsistent
932879614553967772 2020-01-04T21:33:04+00:00 FileSystemConsistent
輸出中的 Name 屬性會對應至復原點名稱,其可作為復原作業中 --rp-Name 參數的值。
使用 Azure CLI 的完整共用復原
您可以使用此還原選項,在原始位置或替代位置中還原完整的檔案共用。
定義下列參數以執行還原作業:
- --container-name:裝載備份原始檔案共用的儲存體帳戶名稱。 若要擷取容器的名稱或自訂名稱,請使用 az backup container list 命令。
- --item-name:您要用於還原作業的已備份原始檔案共用的名稱。 若要擷取備份項目的名稱或自訂名稱,請使用 az backup item list 命令。
將完整共用還原至原始位置
還原至原始位置時,無需指定目標相關的參數。 僅必須提供解決衝突。
下列範例會使用 az backup restore restore-azurefileshare Cmdlet,並將還原模式設為 originallocation,以在原始位置還原 azurefiles 檔案共用。 您會使用在擷取 Azure 檔案共用的復原點中取得的復原點 932883129628959823:
az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932887541532871865 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
6a27cc23-9283-4310-9c27-dcfb81b7b4bb azurefiles
輸出中的 Name 屬性與備份服務為您的還原作業建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
將完整共用還原至替代位置
您可以使用此選項,將檔案共用還原至替代位置,並將原始檔案共用維持不變。 指定下列參數以進行替代的位置復原:
- --target-storage-account:還原備份內容所在的儲存體帳戶。 目標儲存體帳戶必須與保存庫位於相同位置。
- --target-file-share:還原備份內容所在的目標儲存體帳戶內的檔案共用。
- --target-folder:還原資料所在的檔案共用下的資料夾。 如果備份的內容還原至根資料夾,則將目標資料夾值設為空字串。
- --resolve-conflict:還原的資料發生衝突時的指示。 可接受的值為 Overwrite 或 Skip。
下列範例會使用 az backup restore restore-azurefileshare 搭配還原模式為 alternatelocation,將 afsaccount 儲存體帳戶中的 azurefiles 檔案共用還原至 afaccount1 儲存體帳戶中的 azurefiles1" 檔案共用。
az backup restore restore-azurefileshare --vault-name azurefilesvault --resource-group azurefiles --rp-name 932883129628959823 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode alternatelocation --target-storage-account afaccount1 --target-file-share azurefiles1 --target-folder restoredata --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
babeb61c-d73d-4b91-9830-b8bfa83c349a azurefiles
輸出中的 Name 屬性與備份服務為您的還原作業建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
項目層級復原
您可以使用此還原選項,在原始位置或替代位置中還原個別的檔案或資料夾。
定義下列參數以執行還原作業:
- --container-name:裝載備份原始檔案共用的儲存體帳戶名稱。 若要擷取容器的名稱或自訂名稱,請使用 az backup container list 命令。
- --item-name:您要用於還原作業的已備份原始檔案共用的名稱。 若要擷取備份項目的名稱或自訂名稱,請使用 az backup item list 命令。
針對您想要復原的項目指定下列參數:
- SourceFilePath:要還原的檔案共用內檔案的絕對路徑 (字串形式)。 此路徑與 az storage file download 或 az storage file show CLI 命令中使用的路徑相同。
- SourceFileType:選取是否選取目錄或檔案。 可接受的值為 Directory 或 File。
- ResolveConflict:還原資料發生衝突時的指示。 可接受的值為 Overwrite 或 Skip。
將個別檔案或資料夾還原至原始位置
使用 az backup restore restore-azurefiles Cmdlet,並將還原模式設定為 originallocation,以將特定檔案或資料夾還原至其原始位置。
下列範例會將 RestoreTest.txt 檔案還原至其原始位置:azurefiles 檔案共用。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932881556234035474 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --source-file-type file --source-file-path "Restore/RestoreTest.txt" --resolve-conflict overwrite --out table
Name ResourceGroup
------------------------------------ ---------------
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles
輸出中的 Name 屬性與備份服務為您的還原作業建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
將個別檔案或資料夾還原至替代位置
若要將特定檔案或資料夾還原至替代位置,請使用 az backup restore restore-azurefiles Cmdlet,並將還原模式設定為 alternatelocation,以及指定下列目標相關參數:
- --target-storage-account:還原備份內容所在的儲存體帳戶。 目標儲存體帳戶必須與保存庫位於相同位置。
- --target-file-share:還原備份內容所在的目標儲存體帳戶內的檔案共用。
- --target-folder:還原資料所在的檔案共用下的資料夾。 如果備份的內容要還原至根資料夾,則將目標資料夾值設為空字串。
下列範例會將原始存在於 azurefiles 檔案共用中的 RestoreTest.txt 檔案還原至替代位置:afaccount1 儲存體帳戶所裝載的 azurefiles1 檔案共用中的 restoredata 資料夾。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932881556234035474 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode alternatelocation --target-storage-account afaccount1 --target-file-share azurefiles1 --target-folder restoredata --resolve-conflict overwrite --source-file-type file --source-file-path "Restore/RestoreTest.txt" --out table
Name ResourceGroup
------------------------------------ ---------------
df4d9024-0dcb-4edc-bf8c-0a3d18a25319 azurefiles
輸出中的 Name 屬性與備份服務為您的還原作業建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
將多個檔案或資料夾還原至原始或替代位置
若要執行多個項目的還原,請將 source-file-path 參數的值傳遞為您要還原的所有檔案或資料夾的以空格分隔路徑。
下列範例會將 Restore.txt 和 AFS testing Report.docx 還原至其原始位置。
az backup restore restore-azurefiles --vault-name azurefilesvault --resource-group azurefiles --rp-name 932889937058317910 --container-name "StorageContainer;Storage;AzureFiles;afsaccount" --item-name "AzureFileShare;azurefiles" --restore-mode originallocation --source-file-type file --source-file-path "Restore Test.txt" "AFS Testing Report.docx" --resolve-conflict overwrite --out table
輸出將類似於:
Name ResourceGroup
------------------------------------ ---------------
649b0c14-4a94-4945-995a-19e2aace0305 azurefiles
輸出中的 Name 屬性與備份服務為您的還原作業建立的作業名稱相對應。 若要追蹤作業的狀態,請使用 az backup job show Cmdlet。
如果您想要將多個項目還原至替代位置,請使用上述命令,方法是指定目標相關參數,如將個別檔案或資料夾還原至替代位置一節中所述。