如何通过AWS CLI批量删除闲置的可用状态网络接口(ENI)
批量删除AWS中可用状态的网络接口
aws ec2 delete-network-interface命令仅支持单次删除一个网络接口,直接传递多个ID只会处理第一个,因此需要遍历每个ENI ID执行删除操作,以下是两种可行方案:
方案一:Bash循环遍历(适用于Linux/macOS)
通过循环逐个处理每个可用状态的ENI ID:
for eni_id in $(aws ec2 describe-network-interfaces --filters Name=status,Values=available --region eu-west-1 --query "NetworkInterfaces[].NetworkInterfaceId" --output text); do aws ec2 delete-network-interface --network-interface-id "$eni_id" --region eu-west-1 done
方案二:xargs批量传递参数
利用xargs将每个ENI ID作为独立参数传递给删除命令:
aws ec2 describe-network-interfaces --filters Name=status,Values=available --region eu-west-1 --query "NetworkInterfaces[].NetworkInterfaceId" --output text | xargs -I {} aws ec2 delete-network-interface --network-interface-id {} --region eu-west-1
注意事项
- 执行删除前,建议单独运行
describe命令确认要删除的ENI列表,避免误删关键资源。 - 若存在大量ENI,两种方案都会逐个执行删除操作,耗时取决于AWS响应速度,属于正常情况。
内容的提问来源于stack exchange,提问作者Tazz
相关产品推荐
相关产品推荐

