Linux执行shell脚本中的ssh命令时没有反应

今天在编写shell脚本进行远程启动集群时没反应,查略了网上的资料后找到了适合我问题的答案

  • 只需要在执性启动命令前,更新下配置文件就解决了(加上:source /etc/profile)
for i in hadoop101 hadoop102 hadoop103
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "source /etc/profile; /opt/module/servers/kafka/bin/kafka-server-start.sh -daemon /opt/module/servers/kafka/config/server.properties "

成功启动:

具体原因还未知,希望有大佬能解答下

[2023/02/15]:这是因为Linux登录Shell和非登录Shell加载文件的原因。本人在/etc/profile/目录下配置环境变量,正常通过用户名、密码的方式登录Linux系统时,会自动加载/etc/prifile~/.bash_profile~/.bashrc目录下的文件,但是非登录shell只会加载~/.bashrc文件,所以通过shell远程执行某些用到环境变量的命令时会显示找不到东西或者没反应。
另外~/.bashrc文件会自动遍历/etc/profile.d/*.sh目录下的所有.sh文件,我们只要在该目录下自定义环境变量,就不会出现集群或者是命令执行不成功的问题了

posted @   MrSponge  Views(1442)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示