linux通过脚本启动集群zookeeper

当搭建集群后,每次重新启动都需手动启动每台服务器的zookeeper,当服务器数量增多后,这样会显得很繁琐,所以就需要有一个脚本,通过一台机器,利用集群机器间传输命令ssh即可实现一键启动。

首先贴上脚本底层所需知识。

#export A=1 定义的变量,会对自己所在的shell进程及其子进程生效   (相当于java中的把局部变量升级为全局变量)

#B=1 定义的变量,只对自己所在的shell进程生效(定义在外界为全局变量,定义在文件里就相当于局部变量)

#在script.sh中定义的变量,在当前登录的shell进程中 source script.sh时,脚本中定义的变量也会进入当前登陆的shell进程(source后相当于升级为全局变量)

下面贴出启动脚本:

#!/bin/bash
echo "start zkServer..."
for i in 1 3 4
do
ssh min$i "source /etc/profile;/root/apps/zookeeper/bin/zkServer.sh start"
done

#min$i 即我要启动的集群服务器包括min1,min3,min4

source /etc/profile 的目的是将profile中的JAVA_HOME路径提升为全局变量才能到相应的服务器启动具体操作:

1.cd      cd到根目录下
2.mkdir bin 创建bin目录
3.vi startzk.sh 创建启动文件并编辑
4.贴上以上脚本保存
5.chmod +x startzk.sh 为文件增加写权限即可在根目录下直接启动
6.cd cd到根目录下
7.
而后需要进行配置免密登录,通过生成公钥与私钥
ssh-keygen一直回车
然后ssh-copy-id min1/ssh-copy-id min2/ssh-copy-id min4 输入密码即可配置完成免密登录

原文地址:https://www.cnblogs.com/fjlcoding/p/9970155.html