使用 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

  • 本教學課程需要 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-typeazurestorage
  • --workload-typeazurefileshare
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:還原的資料發生衝突時的指示。 可接受的值為 OverwriteSkip

下列範例會使用 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 downloadaz storage file show CLI 命令中使用的路徑相同。
  • SourceFileType:選取是否選取目錄或檔案。 可接受的值為 DirectoryFile
  • ResolveConflict:還原資料發生衝突時的指示。 可接受的值為 OverwriteSkip

將個別檔案或資料夾還原至原始位置

使用 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.txtAFS 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。

如果您想要將多個項目還原至替代位置,請使用上述命令,方法是指定目標相關參數,如將個別檔案或資料夾還原至替代位置一節中所述。

下一步

了解如何使用 Azure CLI 來管理 Azure 檔案共用備份