Logstash启动和停止shell脚本

1、启动脚本

逻辑:(1)如果当前是logstash用户,通过jps命令查看logstash是否正在运行,如果正在运行,就不再启动。如果没有运行,就执行启动命令,后台运行。最后返回logstash的进程id。

         (2)如果当前用户不是logstash用户,那么就切换到logstash用户,然后通过jps命令查看logstash是否正在运行,如果正在运行,就不再启动。如果没有运行,就执行启动命令,后台运行。最后返回logstash的进程id。

#!/bin/bash

logstash_bin="/opt/logstash-9.1.2/bin/logstash"
filter_dir="/opt/logstash-9.1.2/filter/"

# 定义执行Logstash的函数
run_logstash() {
    echo "begin start logstash....."
    logstash_id=$(jps | grep Logstash | awk '{print $1}')
    
    if [ -z "${logstash_id}" ]
    then    
        # nohup /opt/logstash-9.1.2/bin/logstash -f /opt/logstash-9.1.2/filter/ --config.reload.automatic &
        nohup  ${logstash_bin}  -f  ${filter_dir}  --config.reload.automatic &
        sleep 2 
        logstash_id2=$(jps | grep Logstash | awk '{print $1}')
        echo "Logstash has been started! pid is ${logstash_id2}"
    else
        echo "Logstash is already running! pid is ${logstash_id}"
    fi
}

# 获取当前用户名
CURRENT_USER=$(whoami)

# 判断当前用户
if [ "$CURRENT_USER" != "logstash" ]; then
    echo "当前用户是 $CURRENT_USER,切换到 logstash 用户执行"
    # 切换到logstash用户执行函数
    su - logstash -c "$(declare -p logstash_bin filter_dir);$(declare -f run_logstash); run_logstash"
else
    echo "当前用户是 logstash,直接执行"
    run_logstash
fi

2、停止脚本

逻辑:(1)如果当前是logstash用户,通过jps命令查看logstash是否正在运行,如果正在运行,就通过kill命令停止进程。如果没有运行,就提示没有在运行。

         (2)如果当前用户不是logstash用户,那么就切换到logstash用户,通过jps命令查看logstash是否正在运行,如果正在运行,就通过kill命令停止进程。如果没有运行,就提示没有在运行。

#!/bin/bash

# 获取脚本的绝对路径
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
SCRIPT_PATH="$SCRIPT_DIR/$(basename "$0")"

# 如果不是logstash用户,切换到logstash用户重新执行脚本
if [ "$(whoami)" != "logstash" ]; then
    echo "当前用户是 $(whoami),切换到 logstash 用户执行停止操作!"
    exec su - logstash -c "bash $SCRIPT_PATH"
fi

# 以下是logstash用户执行的代码
echo "begin stop logstash...."
logstash_id=$(jps | grep Logstash | awk '{print $1}')

if [ ! -z "${logstash_id}" ]
then
    jps | grep Logstash | awk '{print $1}' | xargs kill
    echo "Logstash has been stoped!"
else
    echo "Logstash is not running!"
fi

 

posted @ 2025-08-22 10:35  业余砖家  阅读(31)  评论(0)    收藏  举报