海运的博客

XenServer获取所有VM虚拟机名称及对应MAC地址

发布时间:November 19, 2012 // 分类:虚拟化,Shell // No Comments

XenServer5.6测试通过,用于查找所有VM及其对应MAC地址写入output.csv文件,直接下载shell脚本

#!/bin/bash
#https://www.haiyun.me
if [ $(whoami) != 'root' ];
then
    echo "Must be root to run $0"
    exit 1;
fi

if [[ ! -e output.csv ]];
then
    touch output.csv
else
    > output.csv
fi

for vmuuid in `xe vm-list | awk -F ':'  '/^uuid/ {print $2}'` ;
do
    namelabel=`xe vm-param-get uuid=$vmuuid param-name=name-label`
    case $namelabel in
        *"Control domain"* ) continue ;;
    esac
    i=`xe vif-list vm-name-label="$namelabel" | grep device | wc -l`
    writeline="\"$namelabel\""
    writeline+=","
    for ((j=0;j<$i;j++))
    do
        mac=`xe vif-list vm-name-label="$namelabel" params=MAC device=$j | awk -F': ' '/^MAC/ {print $2}'`
        if [ -z "$mac" ]
        then
            i=`expr $i + 1`
            continue
        else
            writeline+=$mac
        fi
        if [ $j -lt `expr $i - 1` ]
        then
            writeline+=","
        fi
    done
    echo "$writeline" >> output.csv
done
echo "VMs and their respective MAC addresses have been written to output.csv in the current directory."
exit 0

标签:xenserver, mac, shell, vm, xenserver虚拟机对应mac

发表评论

分类
最新文章
最近回复
  • crowjin: 你确定这能过滤??不是所有请求都返回空地址::?
  • : linux系统上单个网卡多条宽带拨号获取公网IP,外网可以访问这些IP,有偿! Q:25299...
  • 硅谷少年: 非常有用,感谢分享
  • spartan2: https://dashboard.hcaptcha.com/welcome_accessib...
  • 海运: 应该能,在购买页面先手工跳过cf机器验证,后续一定时间内不更换ip应该不会再次验证。
  • spartan: 大佬斯巴达开启了CF的机器识别验证,请问插件能自动跳过吗? 另外这个脚本有没有简单使用说明,新...
  • vincent: 膜拜大佬
  • 海运: proxy-header或proxy_protocol
  • liangjw: 如果是 内部调用 或者 中间存在 代理 而上一个代理又在内网 ,那怎么处理来自代理私有IP?
  • chainofhonor: 感谢,用dnsmasq设置自动判断BIOS和UEFI成功了