您可以利用命令行工具,通过如下脚本,查询所有区域下未关联任何实例的安全组,然后进行删除等处理。您可选择下载脚本或编辑脚本内容。
点击下载脚本:
getUnUsedSecurityGroupId.zip
脚本内容如下:
- #!/bin/bash
- for RegionId in `aliyuncli ecs DescribeRegions --filter Regions.Region[*].RegionId --output json | sed '1d' | sed '$d' | sed 's/,//g' | sed 's/"//g'| sed 's/ //g'`
- do
- cat /dev/null >/tmp/UnUsedSecurityGroupIds.txt
- pageNum=1
- tcount=`aliyuncli ecs DescribeSecurityGroups --RegionId $RegionId --output json --filter TotalCount`
- while ((tcount>0))
- do
- aliyuncli ecs DescribeSecurityGroups --RegionId $RegionId --filter SecurityGroups.SecurityGroup[*].SecurityGroupId --PageSize 100 --PageNumber $pageNum --output json | sed '1d' | sed '$d' | sed 's/,//g' | sed 's/"//g'| sed 's/ //g'>>/tmp/UnUsedSecurityGroupIds.txt
- let pageNum++
- let tcount-=100
- done
- cat /tmp/UnUsedSecurityGroupIds.txt | while read line
- do
- usedVMCount=`aliyuncli ecs DescribeInstances --RegionId $RegionId --SecurityGroupId $line --output json --filter TotalCount`
- if [[ $usedVMCount -eq 0 ]];then
- echo $RegionId " " $line
- fi
- done
- done
编辑或下载脚本并赋权(chmod +x)后,您可以通过如下格式直接执行脚本,即会按地域和安全组成对输出所有地域下未使用的安全组 ID。
使用格式说明:
- ./getUnUsedSGInfo.sh
输出示例:
- [root@AliyunTest]# ./getUnUsedSGInfo.sh
- cn-qingdao sg-227f61lts
- cn-shenzhen sg-22esa0f7s