次のコードは、あなたがやりたいだろうし、あなたのexecute
機能に適応させることができます:あなたが持っている必要がありますいずれかのように、しかし
from paramiko import SSHClient
host="hostname"
user="username"
client = SSHClient()
client.load_system_host_keys()
client.connect(host, username=user)
stdin, stdout, stderr = client.exec_command('./install.sh')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()
注意、あなたの$HOME
ディレクトリにデフォルト設定されますコマンド$PATH
のinstall.sh
または(おそらく)install.sh
スクリプトを含むディレクトリにcd
が必要です。
あなたがして、あなたのデフォルトのパスを確認することができます:それはあなたのパスにない場合は、cd
ことができ、このようなスクリプトを実行し、しかし
stdin, stdout, stderr = client.exec_command('getconf PATH')
print "PATH: ", stdout.readlines()
:スクリプトがない場合には
stdin, stdout, stderr = client.exec_command('(cd /path/to/files; ./install.sh)')
print "stderr: ", stderr.readlines()
print "pwd: ", stdout.readlines()
$PATH
では、コマンドラインの場合と同じように、install.sh
の代わりに./install.sh
を使用する必要があります。 、
stdin, stdout, stderr = client.exec_command('ls -la install.sh')
print "permissions: ", stdout.readlines()
その他のコードください
あなたはまだそれ以上のすべての後に問題がある場合は、あまりにも
install.sh
ファイルのパーミッションをチェックすると良いかもしれません。文脈が足りません。 –質問はあまりにも漠然としていますが、どのsshラッパーを使用しているのですか?エラーは何ですか?「スクリプトは実行されますがエラーはあります」ではなく「スクリプトは実行されませんでした。 –
なぜそれをしたいのか分かりませんが、sys管理のためには[Fabric](http://fabfile.org/)が役に立つかもしれません。 – charlax