Java教程

shell使用&免密登录

本文主要是介绍shell使用&免密登录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

shell使用&免密登录

  • 需求描述
    • shell脚本
      • 免密登录

需求描述

集群机器众多,每台ssh连接后再启动服务较为繁琐,
所以想在一台机器上执行shell脚本来对其他机器上的服务启动。
1.第一步,需要所有的机器先设置免密登录
2.第二步,在其中一台机器A上设置对其他所有机器的免密ssh连接
3.第三步,在其中一台机器A上执行shell脚本

shell脚本

编写的脚本在放到服务器系统上运行时,需要先修改文件的执行权限:

chmod 755 host_allow.sh
参考链接:https://www.cnblogs.com/parent-absent-son/p/12163725.html

以启动zookeeper、supervisor服务的例子来编写脚本:

#!/bin/bash
echo "start zookeeper server..."
#hosts里已经安装zookeeper的主机名,必须已经在/etc/hosts文件中将ip地址和主机名对应加上了才能使用
hosts="master node1 node2 node3"
#用循环来分别执行zkServer.sh start的脚本
for host in $hosts
do
  echo "--------$host--------"
#必须加上source /etc/profile ,否则会报找不到文件的错误
  ssh $host  "source /etc/profile; /home/hadoop/zookeeper-3.4.10/bin/zkServer.sh start"
done
#!/bin/bash
echo "start supervisor ..."
hosts="node1 node2 node3 node4 "
for host in $hosts
do
  echo "--------$host--------"
  #nohup是后台启动,>${STORM_HOME}/logs/supervisor.log 2>&1 &为了让输出的日志不在控制台显示
  ssh $host  "source /etc/profile; nohup storm supervisor >${STORM_HOME}/logs/supervisor.log 2>&1 &"
done

免密登录

参考链接:https://blog.csdn.net/jeikerxiao/article/details/84105529
https://blog.csdn.net/CrazyXinma/article/details/83029351

设置完免密登录需要重启ssh服务:

service sshd restart
这篇关于shell使用&免密登录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!