解决ssh登录后全局环境变量获取不到的问题

1.已添加了linux系统环境变量变量于/etc/profile

vi /etc/profile

export JAVA_HOME=/opt/java/jdk1.6.0_43
export JRE_HOME=/opt/java/jdk1.6.0_43
export PATH=$PATH:$JAVA_HOME/bin

2.putty登录到机器执行set命令可以看到该环境变量,java命令也是可以找到的

3.但是通过python直接ssh访问该机器,或者Jenkins ssh remote访问该机器,结果是找不到java命令的。

python ssh到机器后执行set命令可以看到是没有java相关的环境变量的

造成此问题的原因可能是 :

python或Jenkins登录ssh客户端的shell 是csh 、tcsh 、zsh ,不会读取/etc/profile,而目标机器的shell是bash

解决此问题的方式很简单加入bash -lc命令即可

如ssh.exec_command("bash -lc ‘java -version‘")

时间: 2024-08-05 20:24:43

解决ssh登录后全局环境变量获取不到的问题的相关文章

解决ssh登录后闲置时间过长而断开连接

解决ssh登录后闲置时间过长而断开连接 时我们通过终端连接服务器时,当鼠标和键盘长时间不操作,服务器就会自动断开连接,我们还的需要重新连接,感觉很麻烦,总结一下解决此问题的方法方法一.修改/etc/ssh/sshd_config配置文件,找到ClientAliveCountMax(单位为分钟)修改你想要的值,执行service sshd reload 方法二.找到所在用户的.ssh目录,如root用户该目录在:/root/.ssh/在该目录创建config文件vi /root/.ssh/conf

一文彻底搞懂linux全局环境变量生效顺序

一.前言在登录linux系统并启动一个bash shell时,默认情况下bash会在若干个文件中查找环境变量的设置.这些文件可统称为系统环境文件.??bash检查环境变量文件的情况取决于系统运行shell的方式 二.系统运行Shell的方式1.通过系统用户登陆后默认运行的shell2.非登录交互式运行shell3.执行脚本运行非交互式shell 三.启动顺序示意图以及知识点说明 第一种(通过系统用户登陆):1)当用户登录系统后,首先加载/etc/profile全局环境变量(这也是linux默认的

Linux编程 11(shell全局环境变量与局变环境变量)

一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们.也是存储持久数据的一种简便方法.在bash shell中,环境变量分为:全局和局部二类环境变量. 1.1全局环境变量 全局环境变量对于shell会话和所有生成的子shell都是可见的.局部变量则只是创建它们的shell可见.在linux系统中有系统环境变量,它们基本都是使用全

vue全局环境变量

1.全局环境变量分为开发(.env.development)和生产(.env.production)以及基本(.env) 2.在配置文件中定义 的变量格式 :VUE_APP_XXX= 3.在组件里面取:process.env.变量名 URL   详细X 基本翻译 abbr. 全球资源定位器(Uniform Resource Locator) 网络释义 URL: 网址 URL: Uniform Resource Locator clean URL: 简洁链接 原文地址:https://www.cn

JDK11安装后,环境变量的坑

安装了最新的JDK11,安装完后设置环境变量,打开CMD,没生效 检查了3遍,都没发现问题,在PATH中将JAVA设置移到第一也不行 最后偶然发现,在点击如图右下的'编辑文本',用文本方式编辑时,发现我配置的%JAVA_HOME%\bin   有多余的双引号和分号,统统删除,保存,CMD中java和javac都正常运行了 顺便说下,JDK11已经无需再安装JRE,设置环境变量时也不用设置CLASSPATH了 原文地址:https://www.cnblogs.com/songzhenhua/p/1

解决SSH登录用户执行的命令部分环境变量参数不生效的问题

问题概况 linux机器在/etc/profile配置完成环境变量后,SSH到目标机器执行命令,但是获取不到已配置的环境变量值. 例如场景: 在/etc/profile配置了http代理 export all_proxy=http://$PROXY_HOST:8118 export ftp_proxy=http://$PROXY_HOST:8118 export http_proxy=http://$PROXY_HOST:8118 export https_proxy=http://$PROXY

解决ssh登录Host key verification failed

使用SSH登录某台机器,有时因为server端的一些变动,会出现以下信息: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Some

安装两个JDK后配置环境变量没用?

在实际开发中,由于项目的需要,可能JDK的版本是不同的.比如我们前一个项目所需JDK版本是1.6的,项目完成后,下一个项目JDK版本又是需要1.7的,为了防止由于切换项目我们需要频繁的安装卸载JDK,我们可以在一台电脑上安装多个 JDK,那么安装完成后,我们环境变量也配置好了,但是在 CMD 命令下敲 java -version,发现还是前一个JDK版本,那么我们如何解决呢? 办法1:删除C:\ProgramData\Oracle\Java\javapath目录下java.exe,javaw.e

npm 全局环境变量配置

我们要先配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在NodeJS的主目录下,便在NodeJs下建立”node_global”及”node_cache”两个文件夹.如下图 cmd 中输入如下命令 npm config set prefix “d:\nodejs\node_global”以及npm config set cache “d:\nodejs\node_cache” 增加NOEDE_PATH(全局变量模块存放位置) 打开系统对话框,“我的电脑”右键“属