Я начинаю изучать twisted.conch для автоматизации некоторых задач через SSH.
I tried to modify
образец sshclient.py из http://www.devshed.com/c/a/Python/SSH-with-Twisted/4/. Он запускает 1 команду после входа в систему и печатает захваченный вывод.
What I wanted to do
- запуск последовательных команд и, возможно, решение о том, что делать, основываясь на выводе.
The problem I ran into
означает, что twisted.conch.ssh.channel.SSHChannel , кажется, всегда закрывается после выполнения команды (например, df -h ). В примере будет sendRequest после channelOpen . Тогда канал всегда закрывается после dataReceived независимо от того, что я сделал.
Мне интересно, связано ли это с тем, что сервер отправил EOF после команды. И поэтому этот канал должен быть закрыт? Должен ли я просто открыть несколько каналов для нескольких команд?
Another problem is
эти интерактивные команды (такие как rm -i somefile ). Кажется, что, поскольку сервер не отправил EOF, SSHChannel.dataReceived никогда не вызывается. Как мне удается захватить выходные данные в этой ситуации и что мне сделать, чтобы отправить ответ?