expect... se puede utilizar en un if?
Publicado por Raúl (1 intervención) el 14/01/2009 21:27:55
Hola a todos,
soy nuevo en esto de los scripts de linux, tengo que modificar un script. El script utiliza un archivo de configuración el cual contiene los datos de 2 máquinas (HS_IP) a las que el script se conecta vÃa telnet. La conexión vÃa telnet funciona ok, el problema lo tengo porque cada máquina en realidad es un clúster de dos máquinas, entonces por ejemplo cuando se conecta a 170.30.81.5 el expect "${HS_HOME[$SLG_ACTUAL]}" espera "slg71:rfuuser>" y si cae en su cluster es "slg71:rfuuser>", para el caso de 170.30.81.9 el expect espera "slg81:rfuuser>" y puede ser "slg82:rfuuser>".
Archivo de configuración
HS_IP=(170.30.81.5 170.30.81.9)
HS_HOME=("slg71:rfuuser>" "slg81:rfuuser>")
Script
...
...
spawn telnet ${HS_IP[$SLG_ACTUAL]}
expect "login:"
send "${REMOTE_USER} "
expect "Password:"
send "${REMOTE_PASSWD} "
sleep 1
expect "${HS_HOME[$SLG_ACTUAL]}"
...
...
Lo que habÃa pensado es incluir en el archivo de configuración con esto: HS_HOME_2=("slg72:rfuuser>" "slg82:rfuuser>") y evaluar el expect, por ejemplo cuando se conecta vÃa telnet a 170.30.81.5 y el expect no es "slg71:rfuuser>" entonces es "slg72:rfuuser>".
Se puede realizar la evaluación de un expect?. Cómo?
Pueden ayudarme por favor.
Desde ya muchas gracias.
soy nuevo en esto de los scripts de linux, tengo que modificar un script. El script utiliza un archivo de configuración el cual contiene los datos de 2 máquinas (HS_IP) a las que el script se conecta vÃa telnet. La conexión vÃa telnet funciona ok, el problema lo tengo porque cada máquina en realidad es un clúster de dos máquinas, entonces por ejemplo cuando se conecta a 170.30.81.5 el expect "${HS_HOME[$SLG_ACTUAL]}" espera "slg71:rfuuser>" y si cae en su cluster es "slg71:rfuuser>", para el caso de 170.30.81.9 el expect espera "slg81:rfuuser>" y puede ser "slg82:rfuuser>".
Archivo de configuración
HS_IP=(170.30.81.5 170.30.81.9)
HS_HOME=("slg71:rfuuser>" "slg81:rfuuser>")
Script
...
...
spawn telnet ${HS_IP[$SLG_ACTUAL]}
expect "login:"
send "${REMOTE_USER} "
expect "Password:"
send "${REMOTE_PASSWD} "
sleep 1
expect "${HS_HOME[$SLG_ACTUAL]}"
...
...
Lo que habÃa pensado es incluir en el archivo de configuración con esto: HS_HOME_2=("slg72:rfuuser>" "slg82:rfuuser>") y evaluar el expect, por ejemplo cuando se conecta vÃa telnet a 170.30.81.5 y el expect no es "slg71:rfuuser>" entonces es "slg72:rfuuser>".
Se puede realizar la evaluación de un expect?. Cómo?
Pueden ayudarme por favor.
Desde ya muchas gracias.
Valora esta pregunta


0