使用 AzCopy 中的日志和计划文件查找错误并恢复作业

AzCopy 是一个命令行实用工具,可用于向/从存储帐户复制 Blob 或文件。 本文介绍如何使用日志来诊断错误,然后使用计划文件恢复作业。 本文还介绍如何通过更改日志和计划文件的详细级别以及存储它们的默认位置来配置日志和计划文件。

注释

如果要查找内容以帮助开始使用 AzCopy,请参阅 AzCopy 入门。 本文适用于 AzCopy V10 ,这是当前支持的 AzCopy 版本。 如果需要使用旧版 AzCopy,请参阅 “使用旧版 AzCopy”。

日志和计划文件

AzCopy 为每个作业创建 日志计划 文件。 可以使用这些日志调查并解决任何潜在问题。

日志将包含失败状态(UPLOADFAILEDCOPYFAILEDDOWNLOADFAILED)、完整路径和失败的原因。

默认情况下,日志和计划文件位于 Windows 上的 %USERPROFILE%\.azcopy 目录中或 Mac 和 Linux 上的 $HOME$\.azcopy 目录中,但可更改此位置。

相关错误不一定是文件中显示的第一个错误。 对于网络错误、超时和服务器繁忙错误等错误,AzCopy 将重试最多 20 次,通常重试过程会成功。 你看到的第一个错误可能是无害的,并且成功地进行了重试。 因此,请查找UPLOADFAILEDCOPYFAILEDDOWNLOADFAILED附近的错误,而不是查看文件中的第一个错误。

重要

向微软支持提交请求(或排查涉及任何第三方的问题)时,请共享您要执行的命令的删减版本。 这可以确保不会意外地将 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 命令 Shell (cmd.exe) 以外的所有命令 shell 中,都请使用单引号。 如果使用 Windows 命令 Shell (cmd.exe),请用双引号 ("") 而不是单引号 ('') 括住路径参数。

恢复作业时,AzCopy 将查看作业计划文件。 计划文件列出了首次创建作业时标识用于处理的所有文件。 恢复作业时,AzCopy 将尝试传输计划文件中列出的所有尚未传输的文件。

更改计划文件的位置

使用这些命令中的任何一个。

操作系统 命令
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 检查此变量的当前值。 如果该值为空,则计划文件将写入默认位置。

更改日志文件的位置

使用这些命令中的任何一个。

操作系统 命令
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 此选项覆盖此设置。

可用的日志级别包括:DEBUG、、WARNINGINFOERRORNONE

删除计划和日志文件

若要从本地计算机中删除所有计划和日志文件以节省磁盘空间,请使用 azcopy jobs clean 命令。

若要删除只与一个作业关联的计划和日志文件,请使用 azcopy jobs rm <job-id>。 请将此例子中的 <job-id> 占位符替换为作业 ID。

另请参阅