从 Openstack,我只需要主机名、状态和 IP 地址等输出,但我得到的是主机名、状态和 id=ipaddress
nova list | grep Hostname1 | awk '{print $4,$6,$12}'
Output :
Hostname1 Active net1=10.192.1.22
我只想要主机名、状态和 IP,如下所示
Expecting output 1 :
Hostname1 Active 10.192.1.22
Expecting output 2:
Hostname1 Active net1 10.192.1.22
Hostname2 Active net2 10.192.1.23
提前致谢
答案1
以下是我的做法。我不是脚本专家...
nova list | grep au-dev | awk '{ split($12, v, "="); print $4,$6,v[1],v[2]}'
输出
bcollins@home:~/openstack$ nova list | grep au-dev | awk '{ split($12, v, "="); print $4,$6,v[1],v[2]}'
au-dev ACTIVE bcollins_net 10.10.0.13,
答案2
新的openstack
CLI 命令有很好的选项可以为你完成大部分过滤工作
openstack server list --help
List servers
optional arguments:
-h, --help show this help message and exit
...
--name <name-regex> Regular expression to match names
...
output formatters:
output formatter options
-f {csv,json,table,value,yaml}, --format {csv,json,table,value,yaml}
the output format, defaults to table
-c COLUMN, --column COLUMN
specify the column(s) to include, can be repeated
所以
openstack server list --name '.*webs.*' -f value -c Name -c Status -c Networks
但要获得浮动 IP 仍然需要一些额外的awk
或类似的操作:
openstack server list --name '.*webs.*' -f value -c Networks | awk '{print $2}'