在 AzCopy 中使用記錄檔和計畫檔案,尋找錯誤並繼續工作

AzCopy 是命令列公用程式,可讓您在儲存體帳戶之間複製 Blob 或檔案。 本文可協助您使用記錄檔來診斷錯誤,然後使用計畫檔案來繼續工作。 本文也說明如何藉由變更詳細程度來設定記錄和計畫檔案,以及如何設定這些檔案的預設儲存位置。

注意

如果您要尋找有助於開始使用 AzCopy 的內容,請參閱開始使用 AzCopy。 本文適用於 AzCopy V10,因為這是目前支援的 AzCopy 版本。 如果您需要使用舊版的 AzCopy,請參閱使用舊版的 AzCopy

記錄檔和計畫檔案

AzCopy 會建立每個工作的記錄計畫檔案。 您可以使用這些記錄來調查任何可能的問題並進行疑難排解。

記錄將包含失敗的狀態 (UPLOADFAILEDCOPYFAILEDDOWNLOADFAILED)、完整路徑,以及失敗的原因。

根據預設,記錄檔和計畫檔案位於 Windows 上的 %USERPROFILE%\.azcopy 目錄中 (在 Mac 和 Linux 上則位於 $HOME$\.azcopy 目錄中),但您可以變更該位置。

相關錯誤不一定是出現在檔案中的第一個錯誤。 對於網路錯誤、逾時和伺服器忙碌錯誤等錯誤,AzCopy 會重試最多 20 次,且重試程序通常會成功。 您看到的第一個錯誤可能無傷大雅,且已重試成功。 因此,與其查看檔案中的第一個錯誤,不如尋找 UPLOADFAILEDCOPYFAILEDDOWNLOADFAILED 附近的錯誤。

重要

向 Microsoft 支援服務提交要求 (或針對需要任何協力廠商協助的問題進行疑難排解) 時,請分享您要執行的編校版本命令。 這可確保 SAS 不會不慎與他人共用。 您可以在記錄檔開頭找到編校的版本。

檢閱記錄以了解錯誤

下列命令會取得 04dc9ca9-158f-7945-5933-564021086c79 記錄中所有含有 UPLOADFAILED 狀態的錯誤:

Windows (PowerShell)

Select-String UPLOADFAILED .\04dc9ca9-158f-7945-5933-564021086c79.log

Linux

grep UPLOADFAILED .\04dc9ca9-158f-7945-5933-564021086c79.log

檢視和繼續作業

每個傳輸作業都會建立 AzCopy 作業。 使用下列命令檢視作業的歷程記錄:

azcopy jobs list

若要檢視作業統計資料,請使用下列命令:

azcopy jobs show <job-id>

若要依狀態篩選傳輸,請使用下列命令:

azcopy jobs show <job-id> --with-status=Failed

提示

--with-status 旗標的值要區分大小寫。

使用下列命令繼續執行失敗/已取消的作業。 此命令基於安全考量而不會持續保存,因此會使用其識別碼以及 SAS 權杖:

azcopy jobs resume <job-id> --source-sas="<sas-token>" --destination-sas="<sas-token>"

提示

以單引號 ('') 括住路徑引數,例如 SAS 權杖。 除了 Windows 命令殼層 (cmd.exe) 以外,所有命令殼層中都使用單引號。 如果您使用 Windows 命令殼層 (cmd.exe),請使用雙引號 ("") 括住路徑引數而非單引號 ('')。

繼續工作時,AzCopy 會查看工作計畫檔。 計畫檔會列出第一次建立工作時系統識別出要處理的所有檔案。 當您繼續工作時,AzCopy 會嘗試傳送計畫檔中已列出但尚未傳送的所有檔案。

變更計畫檔的位置

使用下列任一命令。

作業系統 Command
Windows PowerShell:$env:AZCOPY_JOB_PLAN_LOCATION="<value>"
在命令提示字元中,使用:set AZCOPY_JOB_PLAN_LOCATION=<value>
Linux export AZCOPY_JOB_PLAN_LOCATION=<value>
macOS export AZCOPY_JOB_PLAN_LOCATION=<value>

使用 azcopy env 來檢查此變數目前的值。 如果值為空白,則會將計畫檔寫入預設位置。

變更記錄檔的位置

使用下列任一命令。

作業系統 Command
Windows PowerShell:$env:AZCOPY_LOG_LOCATION="<value>"
在命令提示字元中,使用:set AZCOPY_LOG_LOCATION=<value>
Linux export AZCOPY_LOG_LOCATION=<value>
macOS export AZCOPY_LOG_LOCATION=<value>

使用 azcopy env 來檢查此變數目前的值。 如果值為空白,則會將記錄檔寫入預設位置。

變更預設記錄層級

根據預設,AzCopy 記錄層級設定為 INFO。 如果您想要減少記錄詳細程度以節省磁碟空間,請使用 --log-level 選項來覆寫此設定。

可用記錄層級如下:DEBUGINFOWARNINGERRORNONE

移除方案檔案和記錄檔

如果您想要從本機電腦移除所有計畫檔案和記錄檔以節省磁碟空間,請使用 azcopy jobs clean 命令。

若要移除與單一作業相關聯的計畫檔案和記錄檔,請使用 azcopy jobs rm <job-id>。 將此範例中的 <job-id> 預留位置取代為作業的作業識別碼。

另請參閱