[PVE-User] fast way to get all vm names via pvesh?
Dietmar Maurer
dietmar at proxmox.com
Thu Dec 15 11:52:24 CET 2016
> Thats my current script to get all vm names from the cluster. Afterwards I
> check the new name against the list to prevent errors.
>
> #!/usr/bin/env bash
> nodes=$(pvesh get /nodes/ 2>/dev/null | sed -n -E '/\"id\"/
> s/.*:\s\"(.*)\".*/\1/p' | sed -n -E 's/node/nodes/p' )
> vms=$(for i in $nodes ; do vms=$(pvesh get $i/qemu/ 2>/dev/null | sed -n -E
> '/vmid/ s/.*:\s(.*[^\s]).*/\/qemu\/\1/p') ; for q in $vms ; do echo $i$q ;
> done ; done )
> for i in $vms ; do pvesh get $i/config 2>/dev/null | sed -n -E '/\"name\"/
> s/.*:\s\"(.*[^\"])\".*/\1/p' | xargs echo "vm $i has name" ; done
>
> But its so SLOOOOOWWWWW
>
> Any better ideas ?
Maybe the following helps?
# pvesh get /cluster/resources --type vm
More information about the pve-user
mailing list