AWSが提供するLinux(Amazon Linux)を業務で使用しています。
データを貯めておくストレージとして、s3というサービスも使用しています。
AWSのコマンドラインインターフェースのAWS CLIではs3にあるファイルをcatできません。
しかし、今回紹介する方法で中身を見ることができます。
s3上に置いてあるファイルの中身を見たいという場合、通常であれば以下のようにs3からコンピュータにコピーして、それを開くということをすると思います。
1 2 3 4 5 |
# s3からコピー aws s3 cp s3://[bucket_name]/file.zip /tmp/file.zip # コピーしたファイルを開く zcat /tmp/file.zip | head |
これってすごく面倒な作業です。
パパっとcatして中身を確認できたほうが楽です。
しかしながら、AWS CLIで使えるコマンドは限られています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
usage: aws [options] <command></command> [ ...] [parameters] To see help text, you can run: aws help aws <command></command> help aws <command></command> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv rm | sync mb | rb presign |
↑catはない!
s3にあるファイルの中身を見る
cpコマンドを使うと実は中身を確認できます。
具体的には、cpコマンドのコピー先にハイフン(-)を指定すると中身を見ることができます。
1 |
aws s3 cp s3://[bucket_name]/file.txt - |
catコマンドで中身を見るのとほぼ同じ動作になります。
パイプを使って次のコマンドに渡こともできます。
1 2 |
# ファイルを開いて、文字コード変換、zcatしてheadする aws s3 cp s3://[bucket_name]/test.zip - | nkf -w | zcat | head |
これはとっても便利です。
私はs3にあるデータを直接覗くことは普段はしませんが、データの調査等でときどき中身を確認することがあります。
いちいちコピーしなくても済むこの方法はとても重宝します。
コメント