当前位置:   article > 正文

Linux 多台主机批量执行命令_linux多台主机批量执行命令

linux多台主机批量执行命令

  在分布式系统部署时,会存在以下场景:一个应用部署在 N 台 Linux 主机上,在项目部署前,要验证所有主机的 JDK 版本或其他资源配置是否符合预期,例如,检查所有机器的 JDK 版本是否相同。
  如果逐台登录主机,然后逐台使用命令 “java -version” 来验证,虽然可以完成任务,但是效率低下。为提高效率,可以通过脚本实现多台主机批量执行命令,实现步骤如下所示。

一、Linux 主机设置 ssh 免密登录

  首先 Linux 主机必须设置了 ssh 免密登录,可以将其中一台作为信任主机,免密登录到其他所有主机,具体配置方法见《两台 Linux 主机之间配置信任关系(以及如何解除)》。

二、创建主机列表文件 hosts

  vi hosts 命令创建主机列表文件 hosts,将所有远程主机列在文件中。

$ vi hosts

$ cat hosts 
47.100.247.242
101.132.242.27
47.103.217.188
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、创建 doCommand.sh 脚本

#!/bin/sh

doCommand()
{
    hosts=`sed -n '/^[^#]/p' hosts`
    for host in $hosts
        do
            echo ""
            echo HOST $host
            ssh $host "$@"
        done
    return 0
}

    if [ $# -lt 1 ]
    then
            echo "$0 cmd"
            exit
    fi
    doCommand "$@"
    echo "return from doCommand"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

四、为脚本文件 doCommand.sh 增加执行权限

$ chmod u+x doCommand.sh
  • 1

五、在信任主机上运行脚本命令

  脚本运行命令格式如下:

./doCommand.sh "[yourcommand]" 
  • 1

  备注:参数 [yourcommand] 为信任主机上待执行的命令。

  示例如下:

$ ./doCommand.sh "java -version"

HOST 47.100.247.242
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

HOST 101.132.242.27
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

HOST 47.103.217.188
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
return from doCommand
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

  这样该脚本就会在每台机器上执行 “java -version” 命令,并将各台主机的 JDK 版本信息返回信任主机。

文章参考:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/418530
推荐阅读
相关标签
  

闽ICP备14008679号