服务管理脚本

服务管理脚本

我需要您的支持来创建一个脚本,以便将服务从一台服务器部署到另一台服务器并启动和停止。此服务是一个带有属性文件的 jar。

我会创建一个具有更多选择的菜单脚本。

我是这样创建的:

#!/bin/bash
PS3='请输入您的选择:'
options=("开始" "停止" "部署" "退出")
select opt in "${options[@]}"
do
case $opt in
"启动 Shaw")
echo "您选择了选择 1"
;;
"停止 Shaw")
echo "您选择了选择 2"
;;
"检查 Shaw 状态")
echo "您选择了选择 3"
;;
"退出")
break
;;
*) echo "无效选​​项 $REPLY";;
esac
done

我不知道如何将这些选择与各种功能联系起来。

启动功能:

我想到过这样一件事:

函数 start_service ( )
{
ssh $1 'nohup /data/jdk1.8.0_151/bin/java -jar -Xmx1024M /data/apps/file.jar &'
}
echo "正在启动服务器"
for serv_name in $( cat /data/server_list/list.txt )
do start_service ${serv_name} &
echo $! > pid.file &
sleep 5
done

其中 list.txt 是一个包含需要启动此服务的所有服务器的文件。问题是我需要在每个服务器上创建文件 pid.file,并且通过从第一台服务器启动它,不会在第一台服务器上为列出的每台服务器创建一个进程,而是为每个服务器创建一个进程。

停止:

我需要从 pid.file 开始,执行一个读取 file.pid 并停止该进程的命令,例如:kill $(cat pid.file)

部署:

这就是问题所在。我想创建一个文件夹,将 jar 文件或属性文件放在其中,选择此功能,文件将部署到定义路径中的所有服务器上:jar 文件:/pathtofile/apps/file.jar 文件属性:/pathtofile/conf/file.properties

相关内容