On Tue, Oct 20, 2009 at 11:30:12PM -0500, Charles Duffy wrote:
Daniel Berteaud wrote:
> If you need to get the mac address from bash, you can use this:
>
> virsh dumpxml myguest | grep 'mac address' | cut -d\' -f2
>
> You'll get one mac address per line (one line per NIC on the guest)
An alternate approach which doesn't depend on the specific manner in
which the XML is pretty-printed follows:
virsh dumpxml myguest \
| xmlstarlet sel -t \
-m "/domain/devices/interface[@type='network']/mac" \
-v '@address' \
-n
This does add an external dependency (see
http://xmlstar.sf.net/), but I
find XMLStarlet useful in conjunction with libvirt in other cases -- for
instance, for programatically adding or modifying devices within the
domain XML.
Agreed, its cleaner !
I added a --xpath option to xmllint to allow
virsh dumpxml myguest | xmllint --xpath
"//interface[@type='network']/mac"
but I commited this last week only so it's not yet in any libxml2
release. When libxml2-2.7.7 or successors are out then this may be
sufficient (but less complete than XMLStarlet !)
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/