前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据组件 shell 脚本工具

大数据组件 shell 脚本工具

原创
作者头像
弟大翻着洗
发布2024-08-10 12:47:48
820
发布2024-08-10 12:47:48
举报
文章被收录于专栏:工具使用

循环

代码语言:shell
复制
for xxx in xxxs
do
     ## 执行语句
     ## 一般执行语句是要写封装好的启停脚本或者是一些自定义的输出日志
done
  • xxxs 一般是主机IP 例子: 这个脚本是分别在(hadoop102 hadoop103 hadoop104)的/opt/module/zookeeper/bin/目录下启动zkServer.sh start命令,然后输出日志("$host zookeeper Server 正在启动......")
代码语言:shell
复制
#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
     ssh $host "source /etc/profile;/opt/module/zookeeper/bin/zkServer.sh start"
     echo "$host zookeeper Server 正在启动......"
done

函数

代码语言:shell
复制
函数名 () {
    ## 方法体
    ## 一般是启动和关闭组件的一些命令
}

逻辑判断

if else

代码语言:shell
复制
if 逻辑判断; then
        ## 执行语句
    else
        ## 执行语句
    fi    

case

代码语言:shell
复制
case $1 in
    传递给脚本的参数 )
        # 执行语句(一般是一个方法)
    ;;
    传递给脚本的参数 )
         # 执行语句(一般是一个方法)
    ;;
    传递给脚本的参数 )
        # 执行语句(一般是一个方法)
    ;;
esac
  • $1 语句传递给脚本的第一个参数
  • 传递给脚本的参数 一般是start,stop,restart 之类的

Maxwell 启停脚本解析

这个脚本是一个用于管理Maxwell服务的简单Shell脚本,包含启动、停止和重启功能

代码语言:shell
复制
#!/bin/bash

MAXWELL_HOME=/opt/module/maxwell

status_maxwell(){
    result=`ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | wc -l`
    return $result
}

start_maxwell(){
    status_maxwell
    if [[ $? -lt 1 ]]; then
        echo "启动Maxwell"
        $MAXWELL_HOME/bin/maxwell --config $MAXWELL_HOME/config.properties --daemon
    else
        echo "Maxwell正在运行"
    fi
}

stop_maxwell(){
    status_maxwell
    if [[ $? -gt 0 ]]; then
        echo "停止Maxwell"
        ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | awk '{print $2}' | xargs kill -9
    else
        echo "Maxwell未在运行"
    fi
}

case $1 in
    start )
        start_maxwell
    ;;
    stop )
        stop_maxwell
    ;;
    restart )
       stop_maxwell
       start_maxwell
    ;;
esac

1. 定义环境变量

代码语言:bash
复制
MAXWELL_HOME=/opt/module/maxwell
  • 这里定义了一个环境变量 MAXWELL_HOME,指定了Maxwell安装的目录。

2. 函数 status_maxwell

代码语言:bash
复制
status_maxwell(){
    result=`ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | wc -l`
    return $result
}
  • 这个函数检查Maxwell进程是否在运行。
  • ps -ef 列出所有进程。
  • grep com.zendesk.maxwell.Maxwell 查找与Maxwell相关的进程。
  • grep -v grep 确保不包括自己。
  • wc -l 计算返回的行数,即运行Maxwell的进程数。
  • return $result 将行数作为返回值(返回0表示没有启动,返回1表示启动了)。

3. 函数 start_maxwell

代码语言:bash
复制
start_maxwell(){
    status_maxwell
    if [[ $? -lt 1 ]]; then
        echo "启动Maxwell"
        $MAXWELL_HOME/bin/maxwell --config $MAXWELL_HOME/config.properties --daemon
    else
        echo "Maxwell正在运行"
    fi
}
  • status_maxwell 函数中检查Maxwell状态。
  • 如果返回值小于1(即进程未运行),则执行启动命令。
  • 否则,输出“Maxwell正在运行”。

4. 函数 stop_maxwell

代码语言:bash
复制
stop_maxwell(){
    status_maxwell
    if [[ $? -gt 0 ]]; then
        echo "停止Maxwell"
        ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | awk '{print $2}' | xargs kill -9
    else
        echo "Maxwell未在运行"
    fi
}
  • 检查Maxwell进程状态。
  • 如果存在运行的进程(大于0),则使用 kill -9 强制终止它们。
  • awk '{print $2}' awk 是一个强大的文本处理工具,这里用来提取进程信息。{print $2} 指的是输出每行的第二列,通常这是进程ID。
  • xargs 将标准输入的数据转换为命令行参数的工具。在这里,它将提取到的PID传递给 kill -9。
  • kill 用于终止进程
  • -9 强制杀死进程的信号
  • 否则,输出“Maxwell未在运行”。

5. 主逻辑

代码语言:bash
复制
case $1 in
    start )
        start_maxwell
    ;;
    stop )
        stop_maxwell
    ;;
    restart )
       stop_maxwell
       start_maxwell
    ;;
esac
  • case 语句处理传递给脚本的第一个参数(如 start, stop, restart)。
  • 根据不同的命令调用相应的函数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 循环
  • 函数
  • 逻辑判断
  • Maxwell 启停脚本解析
    • 1. 定义环境变量
      • 2. 函数 status_maxwell
        • 3. 函数 start_maxwell
          • 4. 函数 stop_maxwell
            • 5. 主逻辑
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档