问题描述
我正在尝试编写一个脚本,该脚本将删除所有运行超过 1 小时的可用卷。
所以我选择了按状态过滤卷的行
aws ec2 describe-volumes --filters Name=status,Values=available | jq '.Volumes[]'
aws ec2 describe-snapshots --owner self --output json | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description,.StartTime,.SnapshotId]'
所以我合并了这个查询,但它没有返回任何音量
aws ec2 describe-volumes --filters Name=status,Values=available | jq '.Volumes[] | select(.CreateTime < "'$(date --date='-1 hour' '+%Y-%m-%d')'") | [.VolumeId]'
还有一件奇怪的事情,如果我用 blabla 替换 CreateTime,查询不会失败,但会返回音量
~ $ aws ec2 describe-volumes --filters Name=status,Values=available | jq '.Volumes[] | select(.blabla < "'$(date --date='-1 hour' '+%Y-%m-%d')'") | [.VolumeId]'
解决方法
找到另一种方法来做到这一点
aws ec2 describe-volumes --filters Name=status,Values=available --query "Volumes[?(CreateTime<'$(date --date='-1 day' '+%Y-%m-%d')')].[VolumeId]" --output text