集群下命令的统一执行

为了管理集群,常常需要在整个集群下执行同样的命令,但是分别到不同机器上去一个一个的执行效率太低,所以就需要找到一种方式简化整个过程。话不多说,直接给出方法:

一、使用ssh免密码登陆执行

关于ssh的配置,本文不提,只是配置时注意权限的问题。这个步骤需要在每台机器上面分别配置好,保证机群上的机器都可以免密码互连。要执行命令,登陆其中任何一台机器,以下面方式执行:


CMD="/sbin/ifconfig"
user=test
TO=machinename
machine_start=1
machine_end=10
for((i=$machine_start;i<=$machine_end;i++)) do
        echo "====================== $TO-$i ============================"
        ssh $user@$TO-$i $CMD
done


其中cmd如果有参数,使用双引号引住。

二、使用sshpass用明文密码登陆执行

这种方式会在命令中直接写入明文密码,关于安全性自己拿捏,在必要时也可以使用。如果没有安装sshpass,需要先下载安装,过程略去。

执行方式如下:

CMD="/sbin/ifconfig"

user=root

TO=machinename
machine_start=1
machine_end=10
for((i=$machine_start;i<=$machine_end;i++)) do 

        echo "====================== $TO-$i ============================"
        sshpass -p password ssh -o StrictHostKeyChecking=no $user@$TO-$i $CMD

done




注意:

1. 集群中的机器时按照machinename-NO的格式命名的,其中NO表示数字号码,从1开始依次递增。

2. -o StrictHostKeyChecking=no表示在连接的时候假设对方机器上的known_hosts中没有当前机器,那么不用提示直接执行命令,经过测试,只有设置为no时才通过,设为yes则不予执行,设为ask也不提示。不过这样操作安全性很低。详细参见:http://blog.csdn.net/pointfish/article/details/7025932

3.这些都是需要机器中的网络配置畅通才能使用的,对于初始搭建集群时并不适用,配置网络只好一个一个的来了(若高人有办法可告知)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值