El Grupo Informático

Script con Expect se conecta por ssh y obtiene información

Script con Expect se conecta por ssh y obtiene información

Notapor jstechg » 27 Julio 2018, 20:35

Nesesito escribir un script que se conecte desde un PC con linux (Centos 7) a un switch, usando ssh, ejecute un comando en el switch (que devuelve información sobre el mismo) y guarde el resultado de ese comando en un fichero del PC para su análisis posterior.
Esto se debe hacer de forma automática, sin intervención manual de ningún tipo y para ello he escrito el siguiente script con Expect:

#!/usr/bin/expect
spawn ssh usuario@129.0.0.50
expect "assword:"
send "contrasenia\r"
expect ">"
send "show vlan 500\r"
sleep 2
send "exit"

El script se conecta correctamente al switch, espera dos segundos y cierra lo conexión, pero no se muestra por pantalla la información que se debe obtener al ejecutar:

show vlan 500

Para ser exactos, no muestra nada por pantalla.

Creo que esto sucede porque UNUX (y linux) automaticamente envía la salida de la ejecución de un comando a un bugger, y no a la pantalla, cuando este comando se ejecuta de forma no interactiva, como es el caso.

Lo importante no es que se muestre o no por pantalla, sino que la salida del comando se guarde en un fichero del PC desde el cual ejecuto el script para conectarme al switch.

Sin embargo, si no aparece nada por pantalla veo difícil poder guardar dicha salida.

¿Alguna idea para resolver esto?
jstechg
Paseante
Paseante
 
Mensajes: 1
Registrado: 27 Julio 2018, 20:32
Karma Usuario: 0
Post Karma: 0


Re: Script con Expect se conecta por ssh y obtiene información

Notapor adri1992 » 01 Agosto 2018, 20:55

Muy buenas,

nunca he utilizado expect, por lo que no te puedo ayudar mucho =(
¿No tiene la redirección típica de Bash ">"? De esta forma podrías escribir la salida en un fichero.
Avatar de Usuario
adri1992
Admin del Foro
Admin del Foro
 
Mensajes: 4897
Registrado: 02 Agosto 2011, 02:57
Karma Usuario: 91
Post Karma: 0


Volver a Foro Linux



cron