Mam problem z dostaniem rurociągu do pracy z paramiko.Paramiko: Bloki rurociągów na zawsze czytają
to działa:
ssh = paramiko.SSHClient()
[...]
stdin, stdout, stderr = ssh.exec_command("find /tmp")
stdout.read()
to robi nie pracy (bloki na zawsze na stdout.read()):
[...]
stdin, stdout, stderr = ssh.exec_command("bash -")
stdin.write("find /tmp\n")
stdin.close()
stdout.read()
Jakieś pomysły?
EDIT:
Spojrzałem na kodzie źródłowym paramiko i ChannelFile.close naprawdę nie robić nic pod względem komunikacji. Więc spojrzał na API kanału, a to wydaje się działać:
stdin.write("find /tmp\n")
stdin.flush()
stdin.channel.shutdown_write()
stdout.read()
Tak, sama już to wymyśliłem, ale WIĘC nie pozwala mi odpowiedzieć na moje własne pytania :-) – hmn
BTW, również zaadresowane tutaj: https://github.com/robey/paramiko/pull/43 – hmn
poprawny link jest teraz https://github.com/paramiko/paramiko/pull/43 –