Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
No se ve puntero en SSH con subprocess Python
#1
Me gustaría que en una conexión SSH con subprocess se pudiera ver el puntero (lo que parpadea), tengo esta línea de código:
Código:
subprocess.run(["ssh","-l",v_user,"-p","22",v_ip]).returncode
También me gustaría almacenar cada código que se introduce, para tener como un historial de comandos ejecutados.Algo como una fecha junto a una enumaración de los comandos introducidos junto a el prompt de la terminal, por ejemplo:
En un Linux:
Código:
07/06/2020 1. sergio@sergio-pc:~/Escritorio$ ls -a
07/06/2020 2. sergio@sergio-pc:~/Escritorio$ cd ..
En Cisco IOS:
Código:
07/06/2020 1. Router0> enable
07/06/2020 2. Router0#
Tengo entendido que se puede capturar la salida de comandos con subprocess, pero no el propio comando con el prompt, he investigado pero no encuentro nada, ¿tengo que hacerlo de otra forma?
Responder
#2
Hola, ¿cómo estás?

Lo veo un poco complicado, aunque alguna forma de hacerlo debe haber. (Se me ocurrirían algunas en Windows, pero en otros sistemas operativos desconozco). Pero lo que podrías hacer es pedir comandos al usuario desde tu código de Python, luego enviárselos en segundo plano a un proceso vía subprocess, capturar la salida y mostrarla al usuario, en lugar de que el usuario interactúe directamente con ssh o lo que sea.

Para enviar entrada a un subproceso: https://recursospython.com/guias-y-manua...-procesos/.

Saludos
Responder
#3
(08-06-2020, 02:46 AM)Francisco escribió: Hola, ¿cómo estás?

Lo veo un poco complicado, aunque alguna forma de hacerlo debe haber. (Se me ocurrirían algunas en Windows, pero en otros sistemas operativos desconozco). Pero lo que podrías hacer es pedir comandos al usuario desde tu código de Python, luego enviárselos en segundo plano a un proceso vía subprocess, capturar la salida y mostrarla al usuario, en lugar de que el usuario interactúe directamente con ssh o lo que sea.

Para enviar entrada a un subproceso: https://recursospython.com/guias-y-manua...-procesos/.

Saludos

Suena interesante, probaré lo que me estás diciendo o puedo pedir al dispositivo destino que me pase su historial de comandos por SFTP. Y sobre el puntero que no se ve en un SSH ejecutado con subprocess, ¿que se te ocurre?
Responder
#4
Hola, ¿podrías mostrar una imagen de eso? Porque si te referís al cursor de la consola, yo en Windows puedo verlo indistintamente de si se ejecuta el comando vía subprocess o no.
Responder
#5
(08-06-2020, 02:40 PM)Francisco escribió: Hola, ¿podrías mostrar una imagen de eso? Porque si te referís al cursor de la consola, yo en Windows puedo verlo indistintamente de si se ejecuta el comando vía subprocess o no.




Yo estoy usando un Linux, tengo un programa en Python y cuando ejecuto:



Código:
subprocess.run(["ssh","-l",usuario,"-p","22",ip])




Se supone que donde está el prompt aparece un cuadradito que parpadea donde indica donde vas a escribir, es algo molesto escribir en una terminal sin él.


Archivos adjuntos Miniatura(s)
   
Responder
#6
Ya veo... es raro, ¿cuando ejecutás el comando manualmente podés ver el cursor? Acabo de probar un código similar en Windows y en Ubuntu con subprocess, y en ambos casos veo el cursor. Capaz sea un problema específico de tu distribución de Linux, que podrías reportar. No chequeé el código de subprocess como para ver de qué modo implementa la funcionalidad en Linux, capaz indagando ahí puedas averiguar algo. Por ahora no se me ocurre nada más.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)