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 ..
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?
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.
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.
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?
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.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!
08-06-2020, 02:50 PM (Última modificación: 08-06-2020, 02:54 PM por Sergiolocuelo.)
(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.
08-06-2020, 06:19 PM (Última modificación: 08-06-2020, 06:20 PM por Francisco.)
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
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!