Tengo un problema para hacer que las tuberías funcionen con paramiko.Paramiko: Bloques de tuberías para siempre en lectura
Esto funciona:
ssh = paramiko.SSHClient()
[...]
stdin, stdout, stderr = ssh.exec_command("find /tmp")
stdout.read()
esto no de trabajo (bloques para siempre en stdout.read()):
[...]
stdin, stdout, stderr = ssh.exec_command("bash -")
stdin.write("find /tmp\n")
stdin.close()
stdout.read()
¿Alguna idea?
EDIT:
Miré el código fuente de paramiko y ChannelFile.close en realidad no hace nada en términos de comunicación. Así que miré a la API de canal, y esto parece que funciona:
stdin.write("find /tmp\n")
stdin.flush()
stdin.channel.shutdown_write()
stdout.read()
Sí, ya lo descubrí, pero SO no me deja responder mis propias dudas todavía :-) – hmn
BTW, también abordado aquí: https://github.com/robey/paramiko/pull/43 – hmn
The el enlace correcto ahora es https://github.com/paramiko/paramiko/pull/43 –