1

ssh接続を開き、ssh経由でコマンドを送信してコマンドの出力を返すことができる小さなモジュールを作成しようとしています。これにより、ssh 接続は 1 つだけにする必要があります (複数のコマンドが自動ブロックを引き起こさないようにするため)。paramiko は知っているのですが、他の制約で python3.2 を使わなければいけないので使えません。

私が書いたモジュールはここにあります: http://kbicker.web.cern.ch/kbicker/ssh.py

原則として、それは機能します。ただし、cat を使用してテキスト ファイルを読み取ると、プログラムがハングします。これは、pty からの新しい行の読み取りがハングするためであると判断しました。何らかのバッファの問題があると思いますが、それを解決する方法がわかりません。

また、私のコードに関する他のアドバイスにも感謝します。

よろしくお願いします。

4

2 に答える 2

1

解決済み、または少なくとも回避しました:

ssh -M オプションを指定してスレッドを使用することで、1 つのマスター ssh 接続を開いて、マスター接続を介して接続する独自の ssh サブプロセスをコマンドで開くことができるため、複数の接続を開く必要がなくなります。

于 2011-10-22T11:30:52.457 に答える
0

pexpectを試してください。私は同様の問題に遭遇し、それを解決しました。

于 2011-10-14T09:25:17.050 に答える