背景:
記錄下之前的寫(xiě)過(guò)的shell腳本,需要整理出各個(gè)主機(jī)的各個(gè)網(wǎng)卡速率,網(wǎng)卡名稱(chēng)為bond0到bond3,使用ethtool bond1命令可以查看相應(yīng)網(wǎng)卡的速率。因?yàn)橛袔资_(tái)主機(jī),所以考慮使用shell腳本去查詢(xún)。
具體思路:
查詢(xún)單臺(tái)主機(jī)單網(wǎng)卡速率命令:
ethtool bond1 | grep Speed
Speed: 20000Mb/s
查詢(xún)單臺(tái)主機(jī)所有bond網(wǎng)卡速率命令,輸出網(wǎng)卡名稱(chēng)和對(duì)應(yīng)的網(wǎng)卡速率:
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
查詢(xún)遠(yuǎn)程主機(jī)所有bond網(wǎng)卡速率命令,可以使用ssh -tt遠(yuǎn)程執(zhí)行命令:
ssh -tt user@192.168.1.1 "command "
需要查詢(xún)的IP都在/etc/hosts文件,
文件格式:
- 192.168.1.1 compute-1
- 192.168.1.2 compute-2
篩選出192網(wǎng)段的IP
cat /etc/hosts | grep 192 | cut -d' ' -f1
使用expect自動(dòng)輸入密碼
完整腳本:
#!/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
總結(jié)
對(duì)shell腳本格式還不太熟,腳本格式跟直接執(zhí)行命令出來(lái)的結(jié)果還是有不少區(qū)別的,還是需要多學(xué)習(xí)shell腳本方面的知識(shí)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- linux下使用shell腳本輸出帶顏色字體
- Linux shell腳本輸出日志筆記整理(必看篇)
- shell腳本實(shí)現(xiàn)分日志級(jí)別輸出的方法
- shell將腳本輸出結(jié)果記錄到日志文件的實(shí)現(xiàn)
- 輸出執(zhí)行操作和打印日志的shell腳本實(shí)例
- python 捕獲 shell/bash 腳本的輸出結(jié)果實(shí)例
- python 捕獲shell腳本的輸出結(jié)果實(shí)例
- shell腳本echo輸出不換行功能增強(qiáng)實(shí)例
- 控制輸出顏色的shell腳本
- Shell腳本對(duì)文件中的行、單詞、字符進(jìn)行迭代輸出示例