Java-启动JAR管理脚本-sh版

Java-启动JAR管理脚本-bash版

  1 #!/bin/bash
  2 
  3 # 设置应用程序路径
  4 APP_NAME="vote-admin-back-0.0.1-SNAPSHOT.jar"
  5 APP_PATH="../$APP_NAME"
  6 
  7 # 获取当前日期,格式为:年-月-  8 CURRENT_DATE=$(date +%Y-%m-%d)
  9 
 10 # 设置日志路径,按天存储
 11 LOG_PATH="../logs/${APP_NAME%.*}_$CURRENT_DATE.log"
 12 
 13 # 创建日志目录
 14 mkdir -p "../logs"
 15 
 16 # 日志记录函数
 17 log() {
 18     echo "[$(date +%Y-%m-%d %H:%M:%S)] $*" >> "$LOG_PATH"
 19 }
 20 
 21 # 显示菜单函数
 22 show_menu() {
 23     clear
 24     echo
 25     echo "================================="
 26     echo "    JAR应用程序管理工具"
 27     echo "================================="
 28     echo
 29     echo "  1、 启动应用程序"
 30     echo "  2、 停止应用程序"
 31     echo "  3、 重启应用程序"
 32     echo "  4、 查看当天应用日志"
 33     echo "  5、 查看指定七天内应用日志"
 34     echo "  6、 实时查看应用日志"
 35     echo "  7、 退出"
 36     echo
 37     echo "================================="
 38 }
 39 
 40 # 获取用户选择函数
 41 get_choice() {
 42     read -p "请输入选项 [1-7]: " choice
 43     while [[ -z "$choice" ||! "$choice" =~ ^[1-7]$ ]]; do
 44         echo "无效的选项,请输入 1-7 之间的数字!"
 45         sleep 2
 46         show_menu
 47         read -p "请输入选项 [1-7]: " choice
 48     done
 49 }
 50 
 51 # 启动应用程序函数
 52 start_app() {
 53     echo "正在启动应用程序..."
 54     log "尝试启动应用程序..."
 55     java -Dfile.encoding=UTF-8 -jar "$APP_PATH" >> "$LOG_PATH" 2>&1 &
 56     echo "应用程序已启动。"
 57     log "应用程序已启动"
 58     read -p "按回车键继续..."
 59 }
 60 
 61 # 停止应用程序函数
 62 stop_app() {
 63     echo "正在停止应用程序..."
 64     log "尝试停止应用程序..."
 65     pkill -f "$APP_NAME"
 66     if [ $? -ne 0 ]; then
 67         echo "错误:未找到正在运行的应用程序。"
 68         log "错误:未找到正在运行的应用程序"
 69     else
 70         echo "应用程序已停止。"
 71         log "应用程序已停止"
 72     fi
 73     read -p "按回车键继续..."
 74 }
 75 
 76 # 重启应用程序函数
 77 restart_app() {
 78     echo "正在重启应用程序..."
 79     log "尝试重启应用程序..."
 80     stop_app
 81     start_app
 82 }
 83 
 84 # 查看当天应用日志函数
 85 view_today_log() {
 86     echo "正在查看当天应用日志..."
 87     if [ -f "$LOG_PATH" ]; then
 88         less "$LOG_PATH"
 89     else
 90         echo "当天日志文件不存在!"
 91         log "查看当天日志失败:日志文件不存在"
 92     fi
 93     read -p "按回车键继续..."
 94 }
 95 
 96 # 查看指定七天内应用日志函数
 97 view_specific_log() {
 98     read -p "请输入要查看日志的日期(格式:年-月-日,例如 2025-04-29):" specific_date
 99     SPECIFIC_LOG_PATH="../logs/${APP_NAME%.*}_$specific_date.log"
100     if [ -f "$SPECIFIC_LOG_PATH" ]; then
101         less "$SPECIFIC_LOG_PATH"
102     else
103         echo "指定日期的日志文件不存在!"
104         log "查看指定日期日志失败:日志文件不存在,日期:$specific_date"
105     fi
106     read -p "按回车键继续..."
107 }
108 
109 # 实时查看应用日志函数
110 view_realtime_log() {
111     echo "正在实时查看应用日志(按 Ctrl + C 停止查看)..."
112     if [ -f "$LOG_PATH" ]; then
113         tail -f "$LOG_PATH"
114     else
115         echo "日志文件不存在!"
116     fi
117     read -p "按回车键继续..."
118 }
119 
120 # 主循环
121 while true; do
122     show_menu
123     get_choice
124     case "$choice" in
125         1) start_app ;;
126         2) stop_app ;;
127         3) restart_app ;;
128         4) view_today_log ;;
129         5) view_specific_log ;;
130         6) view_realtime_log ;;
131         7)
132             echo "退出应用程序管理工具..."
133             log "退出应用程序管理工具"
134             exit 0
135             ;;
136         *)
137             echo "无效的选项,请输入 1-7 之间的数字!"
138             sleep 2
139             ;;
140     esac
141 done

 文件另存为restart.sh

posted @ 2025-04-29 22:35  李文学  阅读(7)  评论(0)    收藏  举报