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    查询集群所有机器的内存使用情况

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容