Mam konto AWS. Używam S3 do przechowywania kopii zapasowych z różnych serwerów. Pytanie, czy w konsoli AWS są jakieś informacje o tym, ile miejsca na dysku jest używane w mojej chmurze S3?
Mam konto AWS. Używam S3 do przechowywania kopii zapasowych z różnych serwerów. Pytanie, czy w konsoli AWS są jakieś informacje o tym, ile miejsca na dysku jest używane w mojej chmurze S3?
Odpowiedzi:
Yippe - aktualizacja AWS CLI pozwala na rekurencyjne ls przez buckets ...
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
Ważne: musisz określić zarówno StorageType, jak i BucketName w argumencie Dimensions, w przeciwnym razie nie otrzymasz żadnych wyników.
Nie jestem pewien, kiedy dodano to do AWSCLI, biorąc pod uwagę, że oryginalne pytanie było 3 lata temu, ale narzędzie wiersza poleceń daje ładne podsumowanie, uruchamiając:
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
Aby sprawdzić rozmiar wiadra S3 za pomocą konsoli AWS:
Mam nadzieję że to pomoże.
ls
rozwiązania oparte na rozwiązaniach nie.
s3cmd może ci to pokazać, uruchamiając s3cmd du
, opcjonalnie przekazując nazwę zasobnika jako argument.
Interfejs wiersza polecenia AWS obsługuje teraz --query
parametr, który przyjmuje wyrażenia JMESPath .
Oznacza to, że możesz zsumować podane wartości rozmiaru za list-objects
pomocą sum(Contents[].Size)
i policzyć podobnie length(Contents[])
.
Można to uruchomić za pomocą oficjalnego interfejsu wiersza polecenia AWS, jak poniżej i zostało wprowadzone w lutym 2014 r
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"
W przeciwnym razie zapytanie działa świetnie!
Na Linuksie, które mają python
(z pip
instalatorem) grep
i awk
zainstaluj AWS CLI (narzędzia wiersza poleceń dla EC2, S3 i wielu innych usług)
sudo pip install awscli
następnie utwórz .awssecret
plik w swoim katalogu domowym z zawartością jak poniżej (dostosuj klucz, sekret i region według potrzeb):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Ustaw ten plik tylko do odczytu i zapisu dla Twojego użytkownika:
sudo chmod 600 .awssecret
i wyeksportuj go do swojego środowiska
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
następnie uruchom w terminalu (jest to polecenie jednowierszowe, oddzielone znakiem \
dla ułatwienia czytania):
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
część wymieniono wiadro lub ewentualnie (a „podkatalogu”)grep
usunięcie części (za pomocą -v
) linii pasujących wyrażenie regularne (używając -E
). ^$
jest dla pustej linii, --
jest dla linii separatora na wyjściuaws s3 ls
awk
po prostu dodaj do total
trzeciej kolumny wynikowego wyniku (rozmiar w KB), a następnie wyświetl go na końcuUWAGA to polecenie działa dla bieżącego zasobnika lub „folderu”, a nie rekurencyjnie
Zegarek w chmurze umożliwia również tworzenie wskaźników dla Twojego segmentu S3. Pokazuje metryki według rozmiaru i liczby obiektów. Usługi> Narzędzia do zarządzania> Zegarek w chmurze. Wybierz region, w którym znajduje się Twój zasobnik S3, a metryki rozmiaru i liczby obiektów będą wśród tych dostępnych danych.
Zobacz /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
Odpowiedział Vic ...
<?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';
znajduje się na dole kodu źródłowego.
Pobieranie dużych rozmiarów wiader za pośrednictwem interfejsu API (albo aws cli, albo s4cmd) jest dość powolne. Oto moje HowTo wyjaśniające, jak analizować raport użycia S3 za pomocą bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
Konsola AWS nie pokaże tego, ale możesz użyć Bucket Explorer lub Cloudberry Explorer, aby uzyskać całkowity rozmiar wiadra. Oba mają dostępne bezpłatne wersje.
Uwaga: te produkty nadal muszą uzyskać rozmiar każdego pojedynczego przedmiotu, więc w przypadku wiader z wieloma przedmiotami może to zająć dużo czasu.
Na podstawie odpowiedzi @ 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]
Ponadto Cyberduck w wygodny sposób pozwala obliczyć rozmiar wiadra lub folderu.
Odpowiedź Mini Johna całkowicie mi pomogła! Niesamowite ... trzeba było dodać
--region eu-west-1
z Europy
To jest stare zapytanie, ale ponieważ szukałem odpowiedzi, trafiłem na nie. Niektóre odpowiedzi przypomniały mi, że używam przeglądarki S3 do zarządzania danymi. Możesz kliknąć wiadro i kliknąć właściwości, a zobaczysz sumę. Dość proste. Bardzo polecam przeglądarkę: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Cóż, możesz to zrobić również za pośrednictwem klienta S3, jeśli wolisz przyjazny dla człowieka interfejs użytkownika.
Używam CrossFTP , który jest darmowy i wieloplatformowy i tam możesz kliknąć prawym przyciskiem myszy katalog folderu -> wybierz "Właściwości ..." -> kliknij przycisk "Oblicz" obok Rozmiaru i voila.
Zapytałeś: informacje w konsoli AWS o tym, ile miejsca na dysku zajmuje moja chmura S3 ?
I tak do Panelu Rozliczeń i sprawdzam użycie S3 na aktualnym rachunku .
Podają informacje - MTD - w GB do 6 miejsc po przecinku, IOW, do poziomu Kb.
Jest podzielony na regiony, ale dodanie ich (zakładając, że używasz więcej niż jednego regionu) jest dość łatwe.
BTW: aby uzyskać dostęp do informacji rozliczeniowych, możesz potrzebować określonych uprawnień.
Używam Cloud Turtle, aby uzyskać rozmiar poszczególnych wiader. Jeśli rozmiar wiadra przekracza> 100 Gb, wyświetlenie rozmiaru zajmie trochę czasu. Cloud Turtle jest programem darmowym.