最近开始在学习分布式,因为之前电脑崩掉了,重装后导致之前所搭建的环境都没了,这不重新搭建了虚拟机;
起因
以前也见过脚本,但没有仔细的去跟着敲,总觉得这玩意儿得技术高深莫测的人才能碰。直到今天我看到它对曾经十分繁琐的操作能简化到敲敲回车的地步,间接的激发了我学习脚本的欲望(ps:连分布式都没学好,又给自己挖坑了)
经过
今天浅尝了一下这颗语法糖(也不知道这样的形容对不对,欢迎指正),午后时分打开视频打算学习一下zookeeper,学着学着,我发现为什么up启动多台机子的zk不需切换,然后再起,可以在一台机子上同时启动三台zk,这就引起我的兴趣了啊。我回看视频发现up写了一个脚本,我便仿照着也写了一遍。
#!/bin/bash
case $1 in
"start"){
for i in zytCentos zytCentosClone1 zytCentosClone2
do
echo ----------- zookeeper $i 启动 ----------------------
ssh $i "/opt/software/zk/zookeeper-3.5.7/bin/zkServer.sh start"
done
}
;;
"stop"){
for i in zytCentos zytCentosClone1 zytCentosClone2
do
echo ----------- zookeeper $i 停止 ----------------------
ssh $i "/opt/software/zk/zookeeper-3.5.7/bin/zkServer.sh stop"
done
}
;;
"status"){
for i in zytCentos zytCentosClone1 zytCentosClone2
do
echo ----------- zookeeper $i 状态 ----------------------
ssh $i "/opt/software/zk/zookeeper-3.5.7/bin/zkServer.sh status"
done
}
;;
esac
写完以后问题又来了,我和它明显效果不一样啊,我启动脚本后每台机子登录我还得输入密码,那我还不如直接在对应机子上进行启动,这么麻烦干啥?我就开始了百度之旅,喏,就找到了下面这篇文章,按照这篇文章的一通操作后,我终于实现了up的操作。
注意:如果直接写域名的话,要记得去hostname里面把对应的ip加上
虚拟机间实现免密登录
同时,我还自己进行了仿写,在一台机子上查询所有机子的进程号,脚本如下:
#!/bin/bash
echo ================= 查询当前所有服务器的jps情况 =======================
for i in zytCentos zytCentosClone1 zytCentosClone2
do
echo *************** $i当前jps情况 *****************
ssh $i "/opt/software/jdk/jdk1.8.0_144/bin/jps"
done
echo ========================= 查询完毕 ==================================
当然,目前还是在学习当中,等稍微再学懂一点,会好好的唠一唠Bash脚本语言;
带个链接优快云上找的一个学习笔记
2022.4.9更新,原来这是叫shell脚本,bash是shell的一种,linux默认用bash
许愿美团过🙏