AzCopy on Linux 出た記念でOS X(Sierra)でやってみたよ。

こんにちわ。Mr.Xです。
前回の記事から8ヶ月ほどが経過してしまった。すんません。
単にいそがしかっただけす。

さて、現在Microsoftは米国で大きい発表会をやっているそうですが、時差の関係もありそっちはほとんど追えていない。とはいえこのタイミングで色々と新しい情報もあったりするのだが、その一つとしてAzCopyのLinux版のアナウンスがあった。

AzCopyは、Azureのクラウドストレージを利用する上で大変便利でパワフルなツールなのだが、今まではWindowsだけのサポートだった。それがついにLinuxでも動くようになった。結構前に.Net Core がLinuxで動くようになったから、AzCopyが動くのも時間の問題だとは思っていたが、ようやくの登場だ。

今日は子供を寝かしつけたらそのまま一緒に寝てしまい、午前3時ごろにいい感じで目が覚めてしまったところでこのニュースを発見したので、つい手元のMacでやってみてしまった。
普通のLinux系OSなら簡単にシュッと動くと思うので、適当にドキュメント見ながらトライするといい。

さて。
0. 前提条件
・OS Xに .net core を入れておこう。1.1.1以上が必要。
https://www.microsoft.com/net/core#macos

1. ファイルのダウンロード
ダウンロードはwgetで、というのが真っ当なやり方だが、私のMacには残念ながらwgetは入ってなかったのでcurlで適当に入れた。

$ curl -L -o azcopy.tar.gz https://aka.ms/downloadazcopyprlinux

2. インストール
ダウンロードしたのちに展開すると、azcopyディレクトリと install.sh ができているが、当然こんなシェルはOS Xでは機能しないので、何はともあれ中身を見よう。
幸いにしてただコピーしているだけだったので、それに沿って処理を代行する。
※Macで使っているアカウントに管理者権限があるなら、sudoは必要ない。

・OS X では /usr/bin や /usr/lib にはコピーなんてできないので、
読み替えて /usr/local/lib, /usr/local/bin にコピーする。

bashでのtab補完ファイルが添付されていたので、Homebrewで準備してみたが、残念ながら動かず。ちょっと時間かかりそうな雰囲気だったので、今回は割愛。いつか動かせるといいなあ、とか思っている。
azcopy のオプション煩雑なので。

3. テスト
$ azcopy [enter] などとコマンドを実行してみよう。
下記のようになればとりあえずOK。多分動くぞ。

------------------------------------------------------------------------------
azcopy 6.0.0-netcorepreview Copyright (c) 2017 Microsoft Corp. All Rights Reserved.
------------------------------------------------------------------------------
# azcopy is designed for high-performance uploading, downloading, and copying
data to and from Microsoft Azure Blob, and File storage.

# Command Line Usage:
azcopy --source <source> --destination <destination> [options]

# Options:
[--source-key] [--dest-key] [--source-sas] [--dest-sas] [--verbose] [--resume]
[--config-file] [--quiet] [--parallel-level] [--source-type] [--dest-type]
[--recursive] [--include] [--check-md5] [--dry-run] [--preserve-last-modified-time]
[--exclude-newer] [--exclude-older] [--sync-copy] [--set-content-type] [--blob-type]
[--delimiter] [--include-snapshot]

------------------------------------------------------------------------------
For azcopy command-line help, type one of the following commands:
# Detailed command-line help for azcopy      ---   azcopy --help
# Detailed help for any azcopy option        ---   azcopy --help source-key
# Command line samples                       ---   azcopy --help sample
You can learn more about azcopy at http://aka.ms/azcopy.
------------------------------------------------------------------------------

azcopy –help でより詳細なコマンドやコマンドのサンプルが表示されますので、ぜひご覧ください。良いAzCopyライフを!

ご参考:
https://docs.microsoft.com/ja-jp/azure/storage/storage-use-azcopy
https://docs.microsoft.com/ja-jp/azure/machine-learning/machine-learning-data-science-move-data-to-azure-blob-using-azcopy

正しいオプションで実行しなかった場合、ジャーナルファイルが残ってしまう。
場合によっては例外で死ぬので、そのようなものは消すといいだろう。

Incomplete operation with same command line detected at the journal
 directory "/Users/{user}/Microsoft/Azure/AzCopy", do you want to resume
 the operation? Choose Yes to resume, choose No to overwrite the journal
 to start a new operation. (Yes/No) ye

“ye”まで入力したところで例外で死亡する。この場合は”no”で回答すれば例外は発生せず、処理が終わるぞ。resumeに関する部分にバグがあるのだろう。OS Xだからかもしれないとは思っている。