我正在寻找从过去90天未使用的s3桶列表,也为空桶列表。
为了得到它,我试着写了如下代码:
#/bin/sh
for bucketlist in $(aws s3api list-buckets --query "Buckets[].Name");
do
listobjects=$(\
aws s3api list-objects --bucket $bucketlist \
--query 'Contents[?contains(LastModified, `2020-08-06`)]')
done
此代码将打印以下输出:[我只添加了一个桶的结果,以供参考]
{
"Contents": [
{
"Key": "test2/image.png",
"LastModified": "2020-08-06T17:19:10.000Z",
"ETag": "\"xxxxxx\"",
"Size": 179008,,
"StorageClass": "STANDARD",
}
]
}
期望:
1.在上面的代码中,我只想打印在过去90天内没有修改/使用的对象的桶列表。
1.我也在寻找空的遗愿清单
我不擅长编程,有人能指导我吗?提前感谢您的支持。
2条答案
按热度按时间x8diyxa71#
我编写了这个小bash脚本来查找我帐户中的空桶:
我使用list-objects-v2列出了对象,最大项目数为1。如果没有项目,结果为空,我在存储桶名称旁边打印“BUCKET EMPTY”。
这很好用,但是没有考虑非当前版本的对象。为此,你可以使用“list-object-versions”,然后它也会查找非当前版本的对象。
!/bin/zsh for b in $(aws s3 ls|cut -d”“-f3)do echo -n $B if “$(aws s3api list-object-versions --bucket $b --max-items 1)”==“” then echo“〈----- BUCKET EMPTY”else echo“”fi done
pu3pd22g2#
这是我今天写的一个脚本,它不会改变任何东西,但它会给予你命令行来进行更改。