开发者社区> 问答> 正文

脚本使用示例:查询所有地域下未关联任何实例的安全组 ID



您可以利用命令行工具,通过如下脚本,查询所有区域下未关联任何实例的安全组,然后进行删除等处理。您可选择下载脚本或编辑脚本内容。
点击下载脚本: getUnUsedSecurityGroupId.zip
脚本内容如下:

  1. #!/bin/bash
  2. 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'`
  3. do
  4.         cat /dev/null >/tmp/UnUsedSecurityGroupIds.txt
  5.         pageNum=1
  6.         tcount=`aliyuncli ecs DescribeSecurityGroups --RegionId $RegionId --output json --filter TotalCount`
  7.         while ((tcount>0))
  8.         do
  9.                 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
  10.                 let pageNum++
  11.                 let tcount-=100
  12.         done
  13.         cat /tmp/UnUsedSecurityGroupIds.txt  | while read line
  14.         do
  15.                 usedVMCount=`aliyuncli ecs DescribeInstances --RegionId $RegionId --SecurityGroupId $line --output json --filter TotalCount`
  16.                 if [[ $usedVMCount -eq 0 ]];then
  17.                         echo $RegionId "  " $line
  18.         fi
  19.         done
  20. done

编辑或下载脚本并赋权(chmod +x)后,您可以通过如下格式直接执行脚本,即会按地域和安全组成对输出所有地域下未使用的安全组 ID。
使用格式说明:
  1. ./getUnUsedSGInfo.sh

输出示例:
  1. [root@AliyunTest]# ./getUnUsedSGInfo.sh
  2. cn-qingdao    sg-227f61lts
  3. cn-shenzhen    sg-22esa0f7s

展开
收起
行者武松 2017-10-20 15:30:49 1949 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载