AWSアカウントを持っています。S3を使用して、さまざまなサーバーからのバックアップを保存しています。問題は、AWSコンソールにS3クラウドで使用されているディスク容量についての情報はありますか?
AWSアカウントを持っています。S3を使用して、さまざまなサーバーからのバックアップを保存しています。問題は、AWSコンソールにS3クラウドで使用されているディスク容量についての情報はありますか?
回答:
Yippe-AWS CLIの更新により、バケットを介して再帰的にlsを実行できます...
aws s3 ls s3://<bucketname> --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 --end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region eu-west-1 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=toukakoukan.com Name=StorageType,Value=StandardStorage
重要:引数引数でStorageTypeとBucketNameの両方を指定する必要があります。指定しない場合、結果が得られません。
これがAWSCLIにいつ追加されたかはわかりませんが、元の質問は3年前だったので、コマンドラインツールを実行すると、次のように実行すると良い要約が得られます。
aws s3 ls s3://mybucket --recursive --human-readable --summarize
for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
AWSコンソールを使用してS3バケットのサイズを確認するには:
お役に立てれば。
ls
ベースのソリューションはキャプチャしません。
s3cmdは、を実行しs3cmd du
、オプションでバケット名を引数として渡すことでこれを表示できます。
AWS CLI --query
がJMESPathをとるパラメーターをサポートするようになりました式を。
これは、list-objects
を使用sum(Contents[].Size)
して指定されたサイズの値を合計して、次のようにカウントできることを意味しますlength(Contents[])
。
これは、以下の公式AWS CLIを使用して実行でき、2014年2月に導入されました
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"
それ以外の場合、クエリは適切に機能します。
Linuxボックスの持っているpython
(とpip
インストーラ)、grep
およびawk
、AWS CLI(EC2、S3および他の多くのサービスのためのコマンドラインツール)をインストールします
sudo pip install awscli
次に.awssecret
、ホームフォルダーに以下の内容のファイルを作成します(必要に応じてキー、シークレット、リージョンを調整します)。
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
このファイルをユーザーのみに読み書き可能にします。
sudo chmod 600 .awssecret
それを環境にエクスポートします
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
次に、ターミナルで実行します(これは、\
ここで読みやすくするために区切られた1行のコマンドです)。
aws s3 ls s3://<bucket_name>/foo/bar | \
grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \
awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
aws
パーツリストバケット(または必要に応じて「サブフォルダ」)grep
一部の除去(使用-v
)正規表現(使用と一致する行-E
)。^$
空白行です--
用で、の出力の区切り線用ですaws s3 ls
awk
単純にtotal
結果の出力の3番目の列(サイズはKB)に追加し、最後に表示します注:このコマンドは現在のバケットまたは「フォルダ」に対して機能し、再帰的には機能しません
/server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucketを参照してください
ヴィックが答えました...
<?php
if (!class_exists('S3')) require_once 'S3.php';
// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;
// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';
$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
// If you want to get the size of a particular directory, you can do
// only that.
// if (strpos($name, 'directory/sub-directory') !== false)
$totalSize += $val['size'];
}
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
はソースコードの一番下にあります。
API(aws cliまたはs4cmdのいずれか)を介して大きなバケットサイズを取得するのは非常に低速です。これは、bash one linerを使用してS3使用状況レポートを解析する方法を説明する私のハウツーです。
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
AWSコンソールには表示されませんが、バケットエクスプローラーまたはCloudberryエクスプローラーを使用できますをの合計サイズを取得できます。どちらにも無料版があります。
注:これらの製品では、個々のオブジェクトのサイズを取得する必要があるため、多くのオブジェクトを含むバケットの場合は長い時間がかかる可能性があります。
@cuddsの答えに基づいて:
function s3size()
{
for path in $*; do
size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}')
echo "[s3://$path]=[$size]"
done
}
...
$ s3size bucket-a bucket-b/dir
[s3://bucket-a]=[24.04Gb]
[s3://bucket-b/dir]=[26.69Gb]
また、Cyberduckを使用すると、バケットまたはフォルダのサイズを簡単に計算できます。
これは古い質問ですが、私は答えを探していたので、それを偶然見つけました。回答の中には、データの管理にS3ブラウザを使用していることを覚えているものがあります。バケットをクリックしてプロパティをヒットすると、合計が表示されます。ものすごく単純。私はブラウザを強くお勧めします:https : //s3browser.com/default.aspx?v=6-1-1&fam=x64
Cloud Turtleを使用して、個々のバケットのサイズを取得します。バケットのサイズが100 GBを超える場合、サイズの表示に時間がかかります。Cloud turtleはフリーウェアです。