• 我以为网络设备跟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