shell脚本输出多个主机的网卡速率的方法
背景:
记录下之前的写过的shell脚本,需要整理出各个主机的各个网卡速率,网卡名称为bond0到bond3,使用ethtoolbond1命令可以查看相应网卡的速率。因为有几十台主机,所以考虑使用shell脚本去查询。
具体思路:
查询单台主机单网卡速率命令:
ethtoolbond1|grepSpeed Speed:20000Mb/s
查询单台主机所有bond网卡速率命令,输出网卡名称和对应的网卡速率:
foriin{0..3};doechobond$i`/usr/sbin/ethtoolbond$i2>/dev/null|grepSpeed`;done bond0 bond1Speed:20000Mb/s bond2Speed:20000Mb/s bond3Speed:2000Mb/s
查询远程主机所有bond网卡速率命令,可以使用ssh-tt远程执行命令:
ssh-ttuser@192.168.1.1"command"
需要查询的IP都在/etc/hosts文件,
文件格式:
- 192.168.1.1compute-1
- 192.168.1.2compute-2
筛选出192网段的IP
cat/etc/hosts|grep192|cut-d''-f1
使用expect自动输入密码
完整脚本:
#!/bin/bash cat/etc/hosts|grep192|whilereadline do echo$line ip=`echo$line|cut-d''-f1` /usr/bin/expect<<-EOF spawnssh-ttuser@$ip"foriin{0..3};doechobond\$\i\`/usr/sbin/ethtoolbond\$\i2>/dev/null|grepSpeed\`;done" expect{ "(yes/no)?"{send"yes\n";exp_continue} "*assword:"{send"password\n";} } expecteof EOF done
总结
对shell脚本格式还不太熟,脚本格式跟直接执行命令出来的结果还是有不少区别的,还是需要多学习shell脚本方面的知识。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。