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
ましたが、実際のフォローアップコマンドは異なります。