ES、Kibana的群启、群停脚本

#!/bin/bash
es_home=/opt/module/elasticsearch-6.3.1
kibana_home=/opt/module/kibana-6.3.1
case $1 in
    start)
        for host in linux1 linux2 linux3; do
            echo "========== $host 启动es ========="
        ssh $host "source /etc/profile; nohup $es_home/bin/elasticsearch 1>/dev/null 2>&1 & "
        done

        echo "========== 启动kibana ========="
        nohup $kibana_home/bin/kibana 1>/dev/null 2>&1 &

       ;;
    stop)
        echo "========== 停止 kibana ========="
        ps -ef | awk '/kibana/ && !/awk/ {print $2}'| xargs kill -9

        for host in linux1 linux2 linux3 ; do
            echo "========== $host停止 es ========="
            ssh $host "ps -ef | awk '/elasticsearch/ && !/awk/ {print \$2}'| xargs kill -9"
        done
        
       ;;

    *)
        echo "你启动的姿势不对"
        echo "  start   启动es集群和Kibana"
        echo "  stop    停止es集群和Kibana"

    ;;
esac

说明1:nohup,该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断 (no hang up) 的意思,不挂断地运行命令。

说明2: 1、2,表示标准输出、标准错误, 这里把它们都输入进了黑洞 (/dev/null),也可以指定输出到一个文件
理解为:标准输出重定向到/dev/null,错误输出重定向到标准输出,前面标准输出已重定向到/dev/null,所以标准输出/错误输出都重定向到/dev/null

说明3:放在尾部的 & 表示把进程推到后台

说明4:awk 默认分隔符为空格

说明5:  ps 参数: 
          -e : 显示所有进程 
          -f : 全格式 

说明6: awk '/elasticsearch/' :过滤出包含 elasticsearch 字段的进程,同时查出会带有 awk 的进程, 因此需要与(&&) 上 !/awk/ 来反过滤掉awk进程, 最后通过 {print \$2} 取得进程号 

( ps -ef | grep ${kibana_home} | grep -v grep | awk '{print $2}' | xargs kill -9 ) <= 这一步通过 grep 也可以实现, grep -v grep :       反过滤 grep 进程

说明7:xargs 表示取出前面命令运行的结果,作为后面命令的输入参数。在这里可以接受到前面的进程号用来杀死。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值