Como usar If em expect

1. Como usar If em expect

thiago palmeira de melo
thiagokjf

(usa CentOS)

Enviado em 29/04/2016 - 17:11h

Olá pessoal, gostaria de uma ajuda..
Trabalho em um provedor de acesso a internet e precisava temporariamente fazer um script com expect para solucionar um problema temporário, onde, meu script irá ver o status da porta de um switch e se o status for noconnect ele executa um comando, ler o status pra mim é tranquilo, estou fazendo da seguinte forma:

#!/bin/bash
expect -c "
spawn ssh thiag0@192.168.100.144
sleep 1
expect \"*password:*\"
send \"minhasenha\r\"
expect \"*>*\"
send \"enable\r\"
expect \"*Password:*\"
send \"passenable\r\"
expect \"*#*\"
send \"show interfaces Po1 status\r\"
send \"exit\r\"
send \"exit\r\"
interact
"

ao executar isso, tenho o seguinte resultado;

./script_cisco
spawn ssh thiag0@192.168.100.144
thiag0@192.168.100.144's password:

SWITCH>enable
Password:
SWITCH#show interfaces Po1 status

Port Name Status Vlan Duplex Speed Type
Po1 LACP Unicenter connected trunk a-full a-1000

status tem a informação que eu preciso para executar meu comando, se estiver noconnect eu rodo um comando e se estiver connected não faço nada..



  


2. Re: Como usar If em expect

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 29/04/2016 - 18:48h

Verifique se lhe serve uma estrutura deste tipo:


expect {
"Po1 LACP Unicenter connected" {
puts "CONECTADO"
exit
}
"Po1 LACP Unicenter noconnect" {
puts "NAO CONECTADO"
puts "TOMAR ATITUDES"
}
}


Se achar que fica mais fácil, você pode criar um script em expect sem depender do bash modificando o hashbang para
#!/usr/bin/expect -f 
. Não precisaria mais se preocupar em escapar todas as aspas por exemplo.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts