概要
掲題の通りです。需要があるかはわかりませんが・・・。
経緯
どのオブジェクトが一番容量を食っているか (=どのオブジェクトが一番金食い虫か) をcliのみで手軽に調べるためのコマンドを書きました。
結果的には1バケットずつ見て行った方が早かった気もしますが・・・。
前提・動作環境
Windows10 + Git Bashで動作確認しています。
バケット数・オブジェクト数が多い場合のご利用は自己責任でお願いします。
また、このコマンドではオブジェクト名とサイズは判明しますが、所在までは明らかになりません。
- Git Bash (Git)
git version 2.34.0.windows.1
- AWS CLI
aws-cli/1.22.6 Python/3.8.5 Windows/10 botocore/1.23.6
コマンド
aws s3 ls --profile hoge | awk '{print $3}' | sed -r 's#(.*)#aws s3 ls s3://\1 --recursive --profile hoge#g' | bash | sort -k 3nr,3 > s3.txt
出力イメージ
2019-08-29 09:57:21 727810048 hoge.dmp
2019-08-02 16:47:55 144961536 fuga.dmp
...
雑な解説 (左から順に)
もっといい方法や出力を見やすくする方法などがあれば是非教えてください。
-
aws s3 ls
でバケットリストを出力する -
awk
で1. の結果からバケット名だけ取得する -
sed
でバケットの内容を表示するためのコマンドを生成する -
- の結果を
bash
で実行する
- の結果を
-
- の結果をファイルサイズ (3番目) で降順ソートする
-
- の結果を適当なテキストファイルに出力する
以上、3年と9か月ぶりの投稿でした。