shell脚本输出多个主机的网卡速率-创新互联

背景:

记录下之前的写过的shell脚本,需要整理出各个主机的各个网卡速率,网卡名称为bond0到bond3,使用ethtool bond1命令可以查看相应网卡的速率。因为有几十台主机,所以考虑使用shell脚本去查询。

成都创新互联公司是一家专业提供承德县企业网站建设,专注与网站设计制作、成都网站建设、H5技术、小程序制作等业务。10年已为承德县众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
具体思路:

查询单台主机单网卡速率命令:

ethtool bond1 | grep Speed
Speed: 20000Mb/s

查询单台主机所有bond网卡速率命令,输出网卡名称和对应的网卡速率:

for i in {0..3};do echo bond$i `/usr/sbin/ethtool bond$i 2 > /dev/null | grep Speed`;done
bond0
bond1 Speed: 20000Mb/s
bond2 Speed: 20000Mb/s
bond3 Speed: 2000Mb/s

查询远程主机所有bond网卡速率命令,可以使用ssh -tt远程执行命令:

ssh -tt user@192.168.1.1 "command "

需要查询的IP都在/etc/hosts文件,
文件格式:
192.168.1.1 compute-1
192.168.1.2 compute-2
筛选出192网段的IP

cat /etc/hosts | grep 192  |  cut -d' ' -f1

使用expect自动输入密码

完整脚本:
#!/bin/bash
cat /etc/hosts | grep 192 | while read line
do
echo $line
ip=`echo $line | cut -d' ' -f1`
/usr/bin/expect <<-EOF
spawn ssh -tt user@$ip "for i in {0..3};do echo bond\$\i \`/usr/sbin/ethtool bond\$\i 2>/dev/null | grep Speed\`;done "
expect {
        "(yes/no)?" { send "yes\n";exp_continue }
        "*assword:" { send "password\n";}
}
expect eof
EOF
done
总结

对shell脚本格式还不太熟,脚本格式跟直接执行命令出来的结果还是有不少区别的,还是需要多学习shell脚本方面的知识。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:shell脚本输出多个主机的网卡速率-创新互联
文章URL:http://azwzsj.com/article/ccgjip.html