我正在尝试在 Python 中检索远程 Linux 服务器的环境变量。或者,如果我可以在我正在执行的命令中使用变量名,那也很好。据我所知,我正在拨打的电话应该可以正常工作,但我正在取回垃圾。我已经设置了公钥认证,所以不需要密码。
努力一:
devdir = subprocess.check_output(["ssh", connectstring, "echo $DEVDIR"])
努力2:
ret = subprocess.check_output(["ssh", connectstring,
"$DEVDIR/{0}".format(testpath)])
connectstring
是 user@ip 并且工作正常。$DEVDIR
是我要使用的远程变量并包含路径。testpath
是我要执行的脚本的路径,植根于$DEVDIR
.
Effort 1 返回“\n”,Effort 2 无法远程解析 $DEVDIR。
努力3:
import paramiko
...
ssh = paramiko.SSHClient()
ssh.connect(ip, user) # succeeds
stdin, stdout, stderr = ssh.exec_command("echo $DEVDIR")
结果:stdout.readlines() = "\n"