关于ssh远程执行source语句的问题

向各位老司机请教一下:我在A机器上远程操作要在B机器上安装jdk并配置相关文件,脚本能正常执行并修改配置文件,但是最后一句source /etc/profile 却不起作用。在B机器上输入java,
[root@Slave1 ~]# java
-bash: java: command not found
请问要怎样处理才能使新配置文件在B机器上生效呢?
#!/bin/bash

SERVERS="192.168.91.21"
PASSWORD=123456
BASE_SERVER=192.168.91.10

for SERVER in $SERVERS
do
scp install.sh root@$SERVER:/root
ssh root@$SERVER /root/install.sh
done

#install.sh文件内容如下
#!/bin/bash

YUM_SERVER=192.168.91.10

#yum install -y wget

#安装java
wget $YUM_SERVER/soft/jdk-7u45-linux-x64.tar.gz
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
source /etc/profile

#安装其它软件

10个回答

参考:https://www.cnblogs.com/sky-/p/5026012.html
真不行重启一下服务器

重启一下终端,因为source命令也称为“点命令”也就是一个符号(.).source命令通常用于重新执行刚修改的初始或文件,使之立即生效,而不必注销并重新登录,如果他执行不起效果,就重启一下

B机器的终端重新打开一次试一下

我也碰到过,配置后最后重启就好了,也没执行source,也就没在搞过
要么就是centOS版本的问题

估计是用户权限问题,你可以把jdk环境变量放到.bashrc下然后执行. .bashrc 就可以暂时使用jdk

感觉你环境没有配好,没有配进去,配置文件打开检查下,路径对不对

我的也是不行,没有配置好

我在install.sh文件最后添加了一行“java",是能有相关输出的,证明source /etc/profile这语句在A机器上的shell是生效的。B机器如果重启后,
java命令也能正常使用,证明配置没问题的。 但如果不重启,为什么在B机器上运行[root@Slave1 ~]# java
-bash: java: command not found?

qq_37314225
qq_37314225 /etc/profile中的环境变量不是系统级的,你需要设置系统级的变量,比如放在/etc/bash/bashrc中
2 年多之前 回复

环境没有配置好吧,配置后重启试一下。

巧了,我觉得要重新配置

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐