公共的操作提取成脚本

公共的操作提取成脚本

背景

项目中总是会有一些公共的操作, 为什么不用Shell封装一下呢? 让后面的使用者更加的简单高效.

stop.sh

停止服务的脚本

#!/bin/bash
PID=$(ps -ef | grep xxxxxxService | grep -v grep | awk '{ print $2 }')
if [ -z "$PID"]
then 
	echo Application is already stopped
else 
	echo kill -9 $PID
	kill -9 #PID

chech.sh

校验服务是否正常运行的脚本

#! /bin/bash
prod_name = 'xxxxxxService'
prod_num = `ps -ef | grep -w $prod_name | grep -v grep | wc -l`
if [ $prod_num -le 0];then
	echo "xxxxxxService is not run"
else 
	echo "xxxxxxService is running..."
fi

install.sh

项目初始化, 创建必须的目录. 当前不是所有的项目都适用这个. 这里只是一个例子

问题:

  1. 可能没有定义: service_dir 变量
  2. 可能有一些便变量没有, 这里只能做参考, 或者提供一种思路.
#!/bin/bash
echo "start intall..."
echo "create service dir ..."
if [ ! -d $service_dir]; then
	mkdir -p $service_dir
fi

echo "create log dir..."
log_dir = "/opt/xxx/log/xxxxxService"
if [ ! -d $log_dir ]; then
	mkdir -p $log_dir 
fi

echo "create logs dir..."
logs_dir = "/opt/xxx/logs/xxxxxService"
if [ ! -d $logs_dir ]; then
	mkdir -p $logs_dir 
fi

echo "create link file..."
dir_name = "/opt/xxx/service/xxxxxService"
if [ -h $dir_name ]; then
	rm -rf $dir_name
fi

cur_dir = ${pwd}
ln -s -F $cur_dir $dir_name
echo "install success..."

start.sh

启动服务脚本

这里面的启动配置, 有些事具备一定的参考价值的. 可以算自己的一些工作经验

#!/bin/bash
active = $(cat `dirname $0`/../config/active.yml)
LOG_PATH = "/opt/xxx/logs/xxxxxService"
LOG_DATE = `date +%s`

# 堆大小, 正常情况再3G内, 根据实际情况调整, 这里是12G
JVM_OPT = "${JVP_OPT} -Xms12g -Xmx12g"
# 元空间大小, jstat gc查看发现MC字段一般在150M以内, 所以设初始值为256M, 避免每次GC后扩容
JVM_OPT = "${JVP_OPT} -XX:MetaspaceSize = 256M"
# 指定垃圾回收器
JVM_OPT = "${JVP_OPT} -XX:+UseG1GC"
JVM_OPT = "${JVP_OPT} -XX:+PrintGCTimeStamps -verbose:gc -XX:+PrintGCDetails"
# 其他一些细节, 将get set等方法转成本地代码
JVM_OPT = "${JVP_OPT} -XX:UseFastAccessorMethods"
# 日志配置
JVM_OPT = "${JVP_OPT} -Xloggc:$LOG_PATH/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize = 10M"
JVM_OPT = "${JVP_OPT} -Dlogging.path = $LOG_PATH"
# dump 配置
JVM_OPT = "${JVP_OPT} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_PATH/java_heapdump.$LOG_DATE.hprof"

nohup /usr/bin/java $JVM_OPT -jar `dirname $0`/../packages/xxxxxService-1.0.0.jar --spring.profiles.active = $active --jasypt.encryptor.password=$JASYPT_PASS &

其他

offline.sh
online.sh
uninstall.sh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值