我的工作需要克隆一些瘦客户端,它们使用 Ubuntu 作为 VMware 客户端的基础,但问题是我们必须使用硬件的 MAC 手动编辑 /etc/vmware/view-mandatory-config 中的行。
view.sslVerificationMode = "3"
view.defaultUser = "CM-d4_85_64_71_58_44"
view.autoConnectDesktop = "TRUE"
view.autoConnectBroker = "TRUE"
view.kioskLogin = "TRUE"
view.nonInteractive = "TRUE"
view.fullScreen = "TRUE"
view.nomenubar = "TRUE"
view.defaultBroker = "viewcs"
我们需要创建一个在启动时自动运行的脚本(1 次并自行删除)并获取 MAC 并将eth0
其粘贴到上面的配置文件中。
view.defaultUser = "CM-d4_85_64_71_58_44"
我们需要这个,这样我们就可以节省大量时间。
---编辑---根据得到的答案,我执行了以下脚本,虽然仍然不完整,但可以运行。
MAC=$(ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
echo "
view.sslVerificationMode = *3*
view.autoConnectDesktop = *TRUE*
view.autoConnectBroker = *TRUE*
view.kioskLogin = *TRUE*
view.nonInteractive = *TRUE*
view.fullScreen = *TRUE*
view.nomenubar = *TRUE*
view.defaultBroker = *viewcs*
view.defaultUser = *CM-${MAC//:/_}*
" > /etc/vmware/view-mandatory-config;
sed -i 's/*/"/g' /etc/vmware/view-mandatory-config
不完整,因为我不知道如何在文件中打印(“),所以我使用了*,并且在我使用“sed”将*更改为(“)之后,它就像魔法一样工作了。
我不知道为什么,但我无法让这个脚本在启动时运行。
首先,我将其设置到 /etc/rc.local 中,但它没有运行。其次,我尝试将其作为 @reboot /etc/vmware/MAC.sh 放入 crontab 中,但它不起作用。
感谢您的帮助。
答案1
这应该会给你你想要的字符串。
MAC=$(ifconfig eth0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'); echo "CM-${MAC//:/_}";
eth0
用任何接口替换。输出:
CM-d4_85_64_71_58_44
代码grep
来自这里:
https://stackoverflow.com/questions/245916/best-way-to-extract-mac-address-from-ifconfig-output