Linux集群命令分发执行脚本

    如果没有运维人员或运维软件,但是又面临在一个集群中每台机器都执行一个命令时,总不能真的登录每一台吧。那这里就起一个简单的命令分发执行脚本。

0、确保脚本所在的机器能够免密登录到集群其他机器

    SSH免密登录配置

1、将集群的IP都写入一个文件中

touch /root/hosts    创建一个空文件
vi /root/hosts    分行输入集群中所有机器的IP

2、编写命令分发脚本

touch /root/xexec.sh
vi /root/xexec.sh    输入下面的脚本代码

#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"
for i in $(cat /root/hosts);do
  echo -------$i-------
  ssh $i "$*"
done

如果机器数量少,可以替换第三行语句为

for i in hadoop101 hadoop102 hadoop103;do    hadoop101是Hosts中配置的IP映射

如果机器IP配置的映射名有规律,也可以替换第三行语句为

for((i=101; i<104; i++));do

同时后面的 $i 替换为 hadoop$i 

3、测试

/root/xexec.sh free -h    查询集群所有机器的内存使用情况

你可能感兴趣的:(Linux集群命令分发执行脚本)