【问题标题】:On a ssh session how can I set env variables and run shell commands?在 ssh 会话中,如何设置环境变量并运行 shell 命令?
【发布时间】:2021-03-01 17:54:28
【问题描述】:

我需要:

  1. ssh 到远程服务器(目前我使用 paramiko.SSHClient)
  2. 对于运行一组后续命令/脚本所需的会话集环境变量
  3. 运行命令/脚本。

我的环境设置对于那个会话来说是临时的,所以我想修改~/.ssh/environment 不是一个选项。

服务器也受密码保护,所以我猜 subprocess.Popen(ssh) 也是不可能的?再说一次,我还在尝试,请纠正我。

我试过没有成功:

a. ssh.exec_command(env_export_commands)
b. ssh.exec_command(command=dummy,environment=env_export_commands_dictionary).

但在上述任何一项之后,我仍然在 'env' 中看到旧值。 非常感谢任何指向我所缺少的内容的指针。

【问题讨论】:

  • 了解到每个 exec_command 在不同的 shell 中执行,因此设置和检查 env(或使用新设置的 env 变量的任何其他命令)需要在单个 exec_command command_set = "export env1=值1;环境;" + script_using_env 标准输入、标准输出、标准错误 = ssh.exec_command(command_set)

标签: python shell ssh environment-variables


【解决方案1】:

了解到每个 exec_command 在不同的 shell 中执行,因此设置和检查 env(或使用新设置的 env 变量的任何其他命令)需要在单个 exec_command 中执行

即:

 command_set = "export env1=value1; env;" + script_using_env 

 stdin, stdout, stderr = ssh.exec_command(command_set)

【讨论】:

    猜你喜欢
    • 2021-12-25
    • 2020-08-13
    • 2019-08-30
    • 2018-06-18
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2016-01-04
    • 2013-08-08
    相关资源
    最近更新 更多