- 我以为网络设备跟linux服务器一样可以用ssh远程执行命令,但是发现我错了,
第一版脚本如下
#!/bin/bash #20230130 #by lipeichao cat list|while read line do ip=$(echo $line |awk '{print $1}') user=$(echo $line |awk '{print $2}') passwd=$(echo $line |awk '{print $3}') fip=$(echo $line |awk '{print $4}') system=$(echo $line |awk '{print $5}') time=$(date "+%Y/%m/%d %H:%M:%S") echo $time if sshpass -p "$passwd" ssh $user@$ip "ping -q -i 0.1 -c 5 $fip" < /dev/null then echo "$ip $system $fip is ok" else echo "$ip $system $fip is fail" fi done
- 发现并不返回执行后的结果,还卡死了
第二版脚本
#!/bin/bash cat /home/monitor/list |while read ip fip system do time=$(date "+Y/%m/%d %H:%M:%S") echo $time { /usr/bin/expect <<-EOF spawn ssh xunjian@$ip expect{ "yes/no"{send "yes\n";exp_continue} "*password:"{send "$passwd"} } expect "*>" send "ping $fip\n" sleep 5 send "quit\n" interact EOF } echo \n echo $system done
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来自Walter li !