1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| # 项目名称 APP_NAME=safirst-etmf-api-1.0.0.jar
# 根据端口号启动服务 start_port() { echo "准备启动服务,端口号:$PORT" pid=$(netstat -an | grep $PORT | awk '{print $4}') echo "当前进程信息:$pid" if [[ -n $pid ]]; then echo "端口号 $PORT 的服务已在运行" else echo "正在启动服务..." nohup java -jar $APP_NAME --server.port=${PORT} --logging.file.name=/mnt/nas/etmf/irzhd-logs-api-$PORT-105/spring.log > /dev/null & fi exit 1 }
# 备份并更新项目文件 copy_c() { FILE_NAME=$(date -d last-day +%Y%m%d) echo "开始备份项目..." cp $APP_NAME ${APP_NAME}_${FILE_NAME} echo "备份完成:${APP_NAME}_${FILE_NAME}" echo "正在更新项目文件..." cp /mnt/nas/jar/$APP_NAME . echo "项目更新成功" exit 1 }
# 停止指定端口的服务 stop_s() { echo "正在停止端口 $PORT 的服务..." ps -ef | grep $PORT | grep -v grep | awk '{print $2}' | xargs kill -9 echo "服务已停止" exit 1 }
# 查看日志 log_port() { tail -f /mnt/nas/etmf/irzhd-logs-api-$PORT-105/spring.log exit 1 }
# 使用说明 usage() { echo "Usage: ${0} [-s|--start] [-stop] [-c|--copy] [-l|--log]" 1>&2 exit 1 }
# 参数解析 while [[ $# -gt 0 ]]; do key=${1} case ${key} in -s|--start) PORT=${2} if [[ ! -n $PORT ]]; then echo "请提供端口号,例如:-s 12000" exit 1 else echo "正在启动端口号:$PORT" shift 2 start_port fi ;; -c|--copy) copy_c shift 2 ;; -stop) PORT=${2} if [[ ! -n $PORT ]]; then echo "请提供端口号,例如:-stop 12000" exit 1 else stop_s shift 2 fi ;; -l|--log) PORT=${2} if [[ ! -n $PORT ]]; then echo "请提供端口号,例如:-l 12000" exit 1 else log_port shift 2 fi ;; *) usage shift ;; esac done
|
评论