Ejecute múltiples comandos dependientes individualmente con Paramiko y descubra cuándo termina cada comando
Estoy escribiendo un programa en Python que debe comunicarse a través de SSH con un objetivo físico, y enviar a este objetivo algunos comandos automáticamente (es para probar).
Comienzo haciendo esto con Paramiko y todo fue perfecto hasta que tuve que enviar varios comandos y cuando, por ejemplo, el segundo debe ejecutarse en el contexto del primero (por ejemplo, el primero hace quecd /mytargetRep
y el segundo es./executeWhatIWant
). No puedo usarexec_command
para hacerlo, porque cadaexec_command
comienza una nueva sesión.
Intento usar un canal coninvoke_shell()
, pero tengo otro problema con este: no sé cuándo finaliza la ejecución del comando al hacer esto. Puedo tener una ejecución de comando muy corta (a tiempo), y algunas otras son realmente más largas, así que necesito saber cuándo finaliza la ejecución del comando.
Conozco una solución alternativa para usarexec_command
con operaciones de lógica de shell como&&
o usando;
. Por ejemploexec_command("cd /mytargetRep && ./executeWhatIWant")
. Pero no puedo hacer eso, porque también debe ser posible ejecutar algunos comandos manualmente (tengo un terminal minimalista donde puedo enviar comandos), por lo que, por ejemplo, el usuario harácd /mytargetRep
luego./executeWhatIWant
y nocd /mytargetRep && ./executeWhatIWant
.
Así que mi pregunta es: ¿hay una solución usando Paramiko para enviar varios comandos en una misma sesión SSH y poder saber el final de la ejecución del comando?
Gracia