3

Python でリモート Linux サーバーの環境変数を取得しようとしています。または、実行中のコマンドで変数名を使用できれば、それも素晴らしいことです。私の知る限り、私が行っている呼び出しは機能するはずですが、ゴミが戻ってきます。公開鍵認証を設定しているので、パスワードは不要です。

取り組み 1:

devdir = subprocess.check_output(["ssh", connectstring, "echo $DEVDIR"])

取り組み 2:

ret = subprocess.check_output(["ssh", connectstring, 
    "$DEVDIR/{0}".format(testpath)])

connectstringuser@ip であり、正常に動作します。$DEVDIR使用したいリモート変数で、パスが含まれています。testpathをルートとする、実行しようとしているスクリプトへのパスです$DEVDIR

試行 1 は "\n" を返し、試行 2 は $DEVDIR をリモートで解決できません。


取り組み 3:

import paramiko
...
ssh = paramiko.SSHClient()
ssh.connect(ip, user)    # succeeds
stdin, stdout, stderr = ssh.exec_command("echo $DEVDIR")

結果: stdout.readlines() = "\n"

4

3 に答える 3