Shell实战之SSH+Shell脚本实现远程控制多主机

问题引入

我在学习Hadoop,Spark等框架时,发现配置伪分布式环境时经常需要同时控制多台主机,Moba自带的MultiExec并不适合同时控制4台以上的主机。因此我自己设计了一段简单的shell脚本实现了这一功能。

准备

在使用这个脚本之前需要预先实现集群间的IP地址映射

vim /etc/hosts

按照 ip +主机名的格式进行配置

还需要配置好免密(具体可以参考其他csdn博主的文章)

具体实现代码

#!/bin/bash
cmd=$1
if [ ! "$cmd" ];then
        cmd="jps"
fi
#提取集群免密通信的虚拟机主机名
hosts=`sed -n '3,$p' /etc/hosts |awk '{print $2}'`

for host in $hosts;do
        echo "---------$host------------"
        ssh root@$host "$cmd"
done

代码分析

步骤一:控制台输入

定义一个cmd变量用于控制台传入shell命令

步骤二:非空判断

非空判断,如果空,则默认输入jps命令判断进程运行情况

步骤三:提取集群免密通信的虚拟机主机名

首先查看hosts下的主机名

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值