如何删除除一个之外的所有 Azure 资源组
How to delete all Azure resource groups except one
我想删除除云使用的资源组之外的所有资源组 shell。
$ az group list --query [].name --output tsv | grep -i -v cloud >> resGroups.txt
$ while read RGS; do echo $RGS;done<resGroups.txt
DefaultResourceGroup-EUS
NetworkWatcherRG
$ while read RGS; do az group delete -n $RGS --no-wait -y;done<resGroups.txt
validation error: Parameter 'resource_group_name' must conform to the following pattern: '^[-\w\._\(\)]+$'.
validation error: Parameter 'resource_group_name' must conform to the following pattern: '^[-\w\._\(\)]+$'.
$ while read RGS; do echo $RGS | sha256sum ;done<resGroups.txt
8ea64f061e7d52cd16b4c8a89e55ce06275c538ed91a0544b9db720281350dc2 -
b3bc010b955260f143c4b2d860020b36de391bddcbbdf31ce5a608d705f25829 -
$ echo DefaultResourceGroup-EUS | sha256sum
c06416f056e76d1c6642a3df6dd646a91b46ee40791b04db32d9c374e7ab790d -
$ echo NetworkWatcherRG | sha256sum
c0aee8c9e5d3be7fe8a0748031ca1f5f762b2f6aa6a5e3de95dc0b1dbbc54120 -
根据错误和回显,看起来循环正常,但将名称打印到文件的方式有问题。
我不明白为什么哈希值不匹配。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 解决方案 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
感谢大家的意见,这让我开始思考,我意识到问题在于我如何输出字符串。
这不起作用,因为它在每个字符串的末尾添加了一个制表符:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output tsv)
这将删除您的 Azure 帐户中的所有资源组,但包含词云的资源组除外:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output json | jq .[] -r)
for i in $(az group list --query "[?name!='$notRG'].name" --output json | jq .[] -r); do az group delete -n $i -y; done
当我开始循环时:
$ az group list | grep -i "name\|state"
"name": "myResourceGroup",
"provisioningState": "Deleting"
"name": "DefaultResourceGroup-EUS",
"provisioningState": "Succeeded"
"name": "MC_myResourceGroup_myAKSCluster_eastus",
"provisioningState": "Deleting"
"name": "NetworkWatcherRG",
"provisioningState": "Succeeded"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
循环完成后:
$ az group list | grep -i "name\|state"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
删除名称为
的资源组
az group delete --name ExampleResourceGroup
我试过!("groupName")
和^((?!groupName).)*$
替换ExampleResourceGroup,但是还是报错(验证错误)
所以我用if-statement
来排除。您可以在循环中添加代码。
groupName='xxxxxxxx';
if [ $groupName!='the group name that you want to except' ]; then az group delete -n=$groupName; fi;
我用 az group show
试了一下,效果很好。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 解决方案 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
感谢大家的意见,这让我开始思考,我意识到问题在于我如何输出字符串。
这不起作用,因为它在每个字符串的末尾添加了一个制表符:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output tsv)
这将删除您的 Azure 帐户中的所有资源组,但包含词云的资源组除外:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output json | jq .[] -r)
for i in $(az group list --query "[?name!='$notRG'].name" --output json | jq .[] -r); do az group delete -n $i -y; done
当我开始循环时:
$ az group list | grep -i "name\|state"
"name": "myResourceGroup",
"provisioningState": "Deleting"
"name": "DefaultResourceGroup-EUS",
"provisioningState": "Succeeded"
"name": "MC_myResourceGroup_myAKSCluster_eastus",
"provisioningState": "Deleting"
"name": "NetworkWatcherRG",
"provisioningState": "Succeeded"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
循环完成后:
$ az group list | grep -i "name\|state"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
我想删除除云使用的资源组之外的所有资源组 shell。
$ az group list --query [].name --output tsv | grep -i -v cloud >> resGroups.txt
$ while read RGS; do echo $RGS;done<resGroups.txt
DefaultResourceGroup-EUS
NetworkWatcherRG
$ while read RGS; do az group delete -n $RGS --no-wait -y;done<resGroups.txt
validation error: Parameter 'resource_group_name' must conform to the following pattern: '^[-\w\._\(\)]+$'.
validation error: Parameter 'resource_group_name' must conform to the following pattern: '^[-\w\._\(\)]+$'.
$ while read RGS; do echo $RGS | sha256sum ;done<resGroups.txt
8ea64f061e7d52cd16b4c8a89e55ce06275c538ed91a0544b9db720281350dc2 -
b3bc010b955260f143c4b2d860020b36de391bddcbbdf31ce5a608d705f25829 -
$ echo DefaultResourceGroup-EUS | sha256sum
c06416f056e76d1c6642a3df6dd646a91b46ee40791b04db32d9c374e7ab790d -
$ echo NetworkWatcherRG | sha256sum
c0aee8c9e5d3be7fe8a0748031ca1f5f762b2f6aa6a5e3de95dc0b1dbbc54120 -
根据错误和回显,看起来循环正常,但将名称打印到文件的方式有问题。
我不明白为什么哈希值不匹配。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 解决方案 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
感谢大家的意见,这让我开始思考,我意识到问题在于我如何输出字符串。
这不起作用,因为它在每个字符串的末尾添加了一个制表符:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output tsv)
这将删除您的 Azure 帐户中的所有资源组,但包含词云的资源组除外:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output json | jq .[] -r)
for i in $(az group list --query "[?name!='$notRG'].name" --output json | jq .[] -r); do az group delete -n $i -y; done
当我开始循环时:
$ az group list | grep -i "name\|state"
"name": "myResourceGroup",
"provisioningState": "Deleting"
"name": "DefaultResourceGroup-EUS",
"provisioningState": "Succeeded"
"name": "MC_myResourceGroup_myAKSCluster_eastus",
"provisioningState": "Deleting"
"name": "NetworkWatcherRG",
"provisioningState": "Succeeded"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
循环完成后:
$ az group list | grep -i "name\|state"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
删除名称为
的资源组az group delete --name ExampleResourceGroup
我试过!("groupName")
和^((?!groupName).)*$
替换ExampleResourceGroup,但是还是报错(验证错误)
所以我用if-statement
来排除。您可以在循环中添加代码。
groupName='xxxxxxxx';
if [ $groupName!='the group name that you want to except' ]; then az group delete -n=$groupName; fi;
我用 az group show
试了一下,效果很好。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 解决方案 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
感谢大家的意见,这让我开始思考,我意识到问题在于我如何输出字符串。
这不起作用,因为它在每个字符串的末尾添加了一个制表符:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output tsv)
这将删除您的 Azure 帐户中的所有资源组,但包含词云的资源组除外:
notRG=$(az group list --query "[?contains(name, 'cloud')].name" --output json | jq .[] -r)
for i in $(az group list --query "[?name!='$notRG'].name" --output json | jq .[] -r); do az group delete -n $i -y; done
当我开始循环时:
$ az group list | grep -i "name\|state"
"name": "myResourceGroup",
"provisioningState": "Deleting"
"name": "DefaultResourceGroup-EUS",
"provisioningState": "Succeeded"
"name": "MC_myResourceGroup_myAKSCluster_eastus",
"provisioningState": "Deleting"
"name": "NetworkWatcherRG",
"provisioningState": "Succeeded"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"
循环完成后:
$ az group list | grep -i "name\|state"
"name": "cloud-shell-storage-westus",
"provisioningState": "Succeeded"