AzCopy でログとプラン ファイルを使用してエラーの検出とジョブの再開を行う

AzCopy は、ストレージ アカウント間の BLOB またはファイル コピーに利用できるコマンドライン ユーティリティです。 この記事は、ログを使用してエラーを診断し、プラン ファイルを使用してジョブを再開するのに役立ちます。 また、この記事では、ログとプラン ファイルの詳細レベルと既定の格納場所を変更してそれらを構成する方法についても説明します。

Note

AzCopy の使用の開始に役立つコンテンツを探している場合は、「AzCopy を使ってみる」を参照してください。 この記事は、AzCopy のバージョンのうち、現在サポートしている V10 を対象としています。 古いバージョンの AzCopy を使用する必要がある場合は、古いバージョンの AzCopy の使用に関する記事をご覧ください。

ログとプラン ファイル

AzCopy では、ジョブごとに "ログ" と "プラン" ファイルが作成されます。 これらのログを使用することで、潜在的な問題を調査してトラブルシューティングできます。

ログには、エラーの状態 (UPLOADFAILEDCOPYFAILED、および DOWNLOADFAILED)、完全なパス、エラーの理由が含まれます。

既定では、ログとプラン ファイルは、Windows では %USERPROFILE%\.azcopy ディレクトリに、Mac および Linux では $HOME$\.azcopy ディレクトリにありますが、その場所は変更できます。

関連するエラーは、必ずしもファイルに表示される最初のエラーではありません。 ネットワーク エラー、タイムアウト、サーバー ビジー エラーなどのエラーの場合、AzCopy により最大 20 回まで再試行され、通常は再試行プロセスが成功します。 最初に表示されるエラーは、正常に再試行された無害なものである可能性があります。 そのため、ファイルの最初のエラーを確認するのではなく、UPLOADFAILEDCOPYFAILED、または DOWNLOADFAILED の近くにあるエラーを探します。

重要

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 トークンと共に識別子を使用します。SAS トークンは、セキュリティ上の理由で、永続的ではないためです。

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

ヒント

SAS トークンなどのパス引数は単一引用符 ('') で囲みます。 Windows コマンド シェル (cmd.exe) を除き、すべてのコマンド シェルで単一引用符を使用します。 Windows コマンド シェル (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 オプションを使用してこの設定を上書きます。

使用可能なログ レベルは、DEBUGINFOWARNINGERRORNONE です。

プラン ファイルとログ ファイルを削除する

ディスク領域を節約するために、すべてのプラン ファイルとログ ファイルをローカル コンピューターから削除する場合は、azcopy jobs clean コマンドを使用します。

1 つのジョブのみに関連付けられているプラン ファイルとログ ファイルを削除するには、azcopy jobs rm <job-id> を使用します。 この例の <job-id> プレースホルダーは、ジョブのジョブ ID に置き換えてください。

関連項目