群起脚本中,为什么要加source环境变量?

有些脚本中直接ssh $主机名 “执行命令” 就可以

为什么有些脚本中要 “source/etc/profile;再执行命令”呢?

这是因为有些脚本中的命令依赖环境变量里的工具,参数或应用,因此需要souce环境变量!

看你脚本要实现什么功能呀
有些脚本本来就是用来自动安装工具
还有些涉及到切换用户等操作
更新环境变量肯定是因为需要这些环境变量

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7651342
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:解决腾讯云重置之后ssh连接失败问题
  • 除此之外, 这篇博客: 部署私有云过程中遇到的问题详解中的 SSH互信问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 问题详情

      在宿主主机通过 ssh root@192.168.100.2 建立ssh连接时,会出现以下提示

      1567941531450
      ​ 这个原因可能是本地主机的key/没有配置发生了变化,因此每次SSH链接都会有提示,只需要在交互下输入 yes即可,彻底的解决方法如下

    • 解决方案

      1. 使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,去掉对主机的验证检查

        ssh  -o StrictHostKeyChecking=no  root@192.168.100.2
        

        1567941842924

      2. 直接在虚拟机内修改配置文件信息,彻底去掉验证

        修改/etc/ssh/ssh_config文件中的配置,添加/修改如下两行配置:

        StrictHostKeyChecking no
        UserKnownHostsFile /dev/null
        

        1567942277140 1567942232130


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^