【问题标题】:Unable to get environment variable values while executing script on remote server在远程服务器上执行脚本时无法获取环境变量值
【发布时间】:2011-06-29 23:00:16
【问题描述】:

我正在研究 hp Unix 机器。我正在尝试通过 ssh 执行远程脚本。 我的目标脚本在内部使用环境变量值。 当我手动执行 ssh 并执行 echo $(env_vairable_name) 时,它会打印该值。 但是当我远程执行脚本时,它没有获得环境变量值。 我正在尝试使用命令来执行远程脚本。 ssh remote_user@remote_hostname "~/my_script_on_remote.ksh"。 请指教。

谢谢。

【问题讨论】:

  • 你能至少给我们看一部分你的剧本吗?
  • 这就是我分配值的方式: db_user=$ASMM_INSTALL_DB_USER db_pwd=$ASMM_INSTALL_DB_PASSWORD db_instance=$ASMM_INSTALL_DB_INSTANCE 我在这里使用它们 set -A res `sqlplus -s $db_user/$db_pwd@$db_instance

标签: unix


【解决方案1】:

您应该在远程主机上的 Korn shell 的启动文件中设置环境变量。

您也可以使用文件~/.ssh/environment,但ssh(1) 会发出警告(已添加重点):

此外,ssh 读取 ~/.ssh/environment,并添加格式的行 “VARNAME=value”到环境如果文件存在并且用户是 允许改变他们的环境。有关详细信息,请参阅 sshd_config(5) 中的PermitUserEnvironment 选项。

最后,您可以更改脚本以获取命令行参数,而不是从环境中读取其参数。

【讨论】:

  • 感谢您的回复.. ~/.ssh/environment 不起作用,最后我通过了参数。但现在我面临另一个问题。我的脚本正在尝试连接 sqlplus。虽然所有参数都是正确的,但它会抛出错误消息 ERROR: The SQL Plus command execution failed!错误代码:1 在远程脚本上,我使用 set -A res `sqlplus -s $db_user/$db_pwd@$db_instance
  • 看起来像是来自 SQL Plus 命令本身的错误消息;还有一个神秘的。我什至不知道那个命令是什么,所以我帮不了你。
猜你喜欢
  • 1970-01-01
  • 2018-06-27
  • 2015-11-17
  • 2015-11-16
  • 2018-09-16
  • 2014-09-24
  • 2018-09-21
  • 1970-01-01
  • 2014-10-19
相关资源
最近更新 更多