Script con expect para conectarse por ssh a switch y obtener información.

Todos los comentarios sobre redes y servidores en linux y su interacción con otros sistemas operativos.

Moderadores: doc, Kde_Tony, ps-ax

Responder
jstechg
Forista Nuevo
Forista Nuevo
Mensajes: 3
Registrado: Vie Jul 27, 2018 8:00 pm

Script con expect para conectarse por ssh a switch y obtener información.

Mensaje por jstechg » Vie Jul 27, 2018 8:15 pm

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?
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: Script con expect para conectarse por ssh a switch y obtener información.

Mensaje por neurus » Sab Jul 28, 2018 5:17 pm

Instala sshpas.

Código: Seleccionar todo

sshpas -p CONTRASEÑA ssh USUARIO@111.111.111.111 comando1 && comando2 && comando3
La cuestión es que mientras ejecutas esos comandos, estarás haciéndolo en el equipo remoto, por lo que no podrás guardarlo en tu máquina. Puedes guardarlo en remoto y traerlo mediante scp (lo más simple).
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje