代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Shell
】
springboot项目通用管理shell脚本
作者:
/ 发布于
2019/8/27
/
966
#!/bin/bash # # description: Starts and stops the App.jar # author:hewenmin # 注:脚本运行.jar文件需要放在目录 $vjar_prefix_env/programs/$APP_NAME/$ENV 下(环境前缀/programs/jar名称/运行环境/api) vrun_method=$1 vjar_name=$2 vjar_profile=$3 vjar_run_user=$4 vjar_run_port=$5 vjar_prefix_env=/www #-----------------判断参数执行方法定义begin---------------------- check_vjar_name(){ if [ ! -n "$vjar_name" ] ;then echo "jar文件名称为空" out_explain exit fi } check_vjar_profile(){ if [ ! -n "$vjar_profile" ] ;then echo "请输入运行profile环境" out_explain exit fi } check_vjar_run_user(){ if [ ! -n "$vjar_run_user" ] ;then echo "启动脚本用户为空" out_explain exit fi } check_vjar_prefix_env(){ if [ ! -n "$vjar_prefix_env" ] ;then #echo "项目环境目录为空,默认输出到【/www】目录下" vjar_prefix_env=/www fi } out_explain(){ echo "参数备注:./springboot_ssl.sh 运行方法 jar文件名 profile环境 执行用户 端口号(没有采用配置文件中端口号)" echo "例如:./springboot_ssl.sh start springboot_demo test root 8080" echo "讲解:运行 /www/programs/springboot_demo/test/springboot_demo.jar的文件,运行测试环境,以root身份运行,运行在8080端口" } checkpid(){ pid=`ps -ef |grep $JAR_FILE |grep -v grep |awk '{print $2}'` } #-----------------判断参数执行方法定义end------------------- #-----------------根据执行方法判断所需要参数being---------------------- if [ "$1" = "start" ] ;then check_vjar_name check_vjar_profile check_vjar_run_user check_vjar_prefix_env fi if [ "$1" = "stop" ] ;then check_vjar_name fi if [ "$1" = "restart" ] ;then check_vjar_name fi if [ "$1" = "status" ] ;then check_vjar_name fi server_port= if [ -n "$vjar_run_port" ] ;then server_port="--server.port=$vjar_run_port" fi #-----------------根据执行方法判断所需要参数end------------------- #----------------------------初始化环境变量begin---------------------------------- ENV=$vjar_profile RUNNING_USER=$vjar_run_user APP_NAME=$vjar_name #定义jar文件和log文件目录 APP_PREFIX_HOME="$vjar_prefix_env/programs/$APP_NAME/$ENV/api" APP_LOG_HOME="$vjar_prefix_env/logs/$APP_NAME/$ENV" #具体文件名称 LOG_PATH=$APP_LOG_HOME/catalina.out GC_LOG_PATH=$APP_LOG_HOME/gc-catalina.out.log JAR_FILE=$APP_NAME.jar #ENV=test #RUNNING_USER=root #APP_NAME=springboot_demo #APP_PREFIX_HOME=/www #APP_LOG_HOME="/www/logs/$APP_NAME/$ENV" ADATE=`date +%Y%m%d%H%M%S` #JMX监控需用到 JMX="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" #JVM参数 JVM_OPTS="-Dname=$APP_NAME-$ENV -Djeesuite.configcenter.profile=$ENV -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -Xloggc:$GC_LOG_PATH -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" #----------------------------初始化环境变量end---------------------------------- pid=0 start(){ checkpid if [ ! -n "$pid" ]; then checkdir JAVA_CMD="nohup java -jar $JVM_OPTS $APP_PREFIX_HOME/$JAR_FILE $server_port --spring.profiles.active=$ENV > $LOG_PATH 2>&1 &" su - $RUNNING_USER -c "$JAVA_CMD" echo "---------------------------------" echo "启动完成,按CTRL+C退出日志界面即可>>>>>" echo "---------------------------------" sleep 2s tail -f $LOG_PATH else echo "$APP_NAME is runing PID: $pid" fi } checkdir(){ dirname $0|grep "^/" >/dev/null if [ $? -eq 0 ];then APP_LOG_HOME=`dirname $0` else dirname $0|grep "^\." >/dev/null retval=$? if [ $retval -eq 0 ];then APP_LOG_HOME=`dirname $0|sed "s#^.#$APP_LOG_HOME#"` else APP_LOG_HOME=`dirname $0|sed "s#^#$APP_LOG_HOME/#"` fi fi if [ ! -d "$APP_LOG_HOME" ];then mkdir -p $APP_LOG_HOME fi } status(){ checkpid if [ ! -n "$pid" ]; then echo "$APP_NAME not runing" else echo "$APP_NAME runing PID: $pid" fi } stop(){ checkpid if [ ! -n "$pid" ]; then echo "$APP_NAME not runing" else echo "$APP_NAME stop..." kill -9 $pid fi } restart(){ stop sleep 1s start } case $1 in start) start;; stop) stop;; restart) restart;; status) status;; *) echo "require start|stop|restart|status" ;; esac
试试其它关键字
同语言下
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
可能有用的
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3