我被建议使用这些命令获取Openstack中的关闭实例列表,并将它们作为参数发送给start命令:
nova list | grep SHUTOFF | cut '-d|' -f3 | xargs nova start
但它会导致错误:
error: unrecognized arguments: shutdowninstance-2
如果我对Xargs使用其他命令,则列表是正确的:
nova list | grep SHUTOFF | cut '-d|' -f3 | xargs echo
shutdowninstance-1 shutdowninstances-2
所以第一个命令必须正常,问题应该在命令的最后部分。
我想这是因为最后一个命令旁边有参数start
。
Nova预期的语法是nova start nameofinstance
。
我在这里研究了很多关于使用Xargs的其他问题,但是找不到解决方法。
如何更改命令以使其正常工作?
编辑:使用xargs -t
提供此输出:
nova start shutdowninstance-1 shutdowninstances-2
所以问题可能是nova start
当时只接受一个实例名称。
可以调整给我的命令,以便当时只提供一个参数吗?
答案 0 :(得分:2)
您可以使用-I
的{{1}}选项:
xargs
或者你可以循环结果:
nova list | grep SHUTOFF | cut '-d|' -f3 | xargs -I '{}' bash -c 'nova start {}'