8

SSHClientを使用するときにexec_command呼び出し用に環境変数を登録する方法を知っている人はいますか?

SSHClientクラスをインスタンス化し、connectメソッドを使用して別のコンピューターに接続し、exec_commandメソッドを使用してコマンドを送信する基本的なスクリプトを使用しています。しかし、コマンドを発行しようとすると、環境変数が登録されていないようです。'ls'のような基本的なことを実行して、stdoutを確認できますが、インストールされたプログラムを実行しようとすると、環境変数が欠落しているため、実行できなくなります。ユーザーの環境変数が設定されているため、コマンドラインでsshを使用して同じことを行うことができます。

#!/usr/bin/python
import paramiko

ssh.connect('mymachine',username='myname',password='pass')    
stdin,stdout,stderr=ssh.exec_command('cd /myfolder/path')
stdin,stdout,stderr=ssh.exec_command('ls')

....

....

ssh.close()

注:paramikoでディレクトリを変更することはできません。cdフォローアップコマンドにコマンドを1つ追加しましたssh.exec_command('cd /dddd/ddd;ls')。例として挙げlsましたが、実際のフォローアップコマンドは異なります。

4

3 に答える 3

1

次のことができますclient.exec_command(..., get_pty=True)

これにより、paramiko は のように疑似端末を割り当てsshます。

于 2016-06-10T01:55:05.837 に答える