run.sh

 

 

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash
MODULE=$1
ENV=$2
IS_PRINT_LOG=$3
 
PORT=1
case "$MODULE" in
  "blade-gateway")
    PORT=8000
    ;;
  "blade-user")
   PORT=8017
    ;;
  "blade-team")
   PORT=8016
    ;;
  "blade-system")
   PORT=8015
    ;;
  "blade-log")
   PORT=8013
    ;;
  "blade-instrument")
   PORT=8012
    ;;
  "blade-customer")
   PORT=8011
    ;;
  "blade-auth")
   PORT=8008
    ;;
  "blade-resource")
   PORT=8009
    ;;
  "blade-develop")
   PORT=10002
    ;;
  *)
    echo "Unknown"
    ;;
esac
 
# 启动日志
DIR=~/projects/$MODULE/
LOG_PATH=$DIR/log
RESTART_LOG=$LOG_PATH/restart-$MODULE.log
echo '================================' >> $RESTART_LOG
echo `date +%Y%m%d' '%H:%M:%S` >> $RESTART_LOG
echo '================================' >> $RESTART_LOG
echo "PORT: "$PORT  >> $RESTART_LOG
echo "MODULE: "$MODULE  >> $RESTART_LOG
 
# 检查文件夹是否存在
cd $DIR
echo 'PWD: '$(pwd) >> $RESTART_LOG
 
if [ ! -d "$LOG_PATH" ]; then
  echo "文件夹不存在,正在创建..."
  mkdir -p "$LOG_PATH"
  echo "文件夹已创建: $LOG_PATH"
else
  echo "文件夹已存在: $LOG_PATH"
fi
 
if [ "$4" = "1"  ]
then
  cp 20*-$MODULE.jar release/$MODULE.jar
fi
 
# 检查文件夹是否存在
DIR_PATH="$DIR/history"
if [ ! -d "$DIR_PATH" ]; then
  echo "文件夹不存在,正在创建..."
  mkdir -p "$DIR_PATH"
  echo "文件夹已创建: $DIR_PATH"
else
  echo "文件夹已存在: $DIR_PATH"
fi
# 备份上次的发布到历史文件夹
mv $DIR/*.jar $DIR/history
echo '================after mv 1================' >> $RESTART_LOG
# 重命名发布文件并且移动到 ~/projects 文件夹,等待发布
NEW_NAME=$(date +%Y%m%d%H%M%S)-$MODULE.jar
mv $DIR/release/$MODULE.jar $DIR/release/$NEW_NAME
mv $DIR/release/$NEW_NAME $DIR
echo '================after mv 2================' >> $RESTART_LOG
 
PID=$(jps | grep $MODULE | cut -f 1 -d ' ')
echo "jps  PID: "$PID >> $RESTART_LOG
if [[ $PID =~ ^[0-9]+$ ]]
then
    echo 'kill -9 '$PID >> $RESTART_LOG
    kill -9 $PID
fi
 
PID=$(lsof -i :$PORT | head -n 2 | grep java | awk '{printf $2}')
echo "lsof PID: "$PID >> $RESTART_LOG
if [[ $PID =~ ^[0-9]+$ ]]
then
    echo 'kill -9 '$PID >> $RESTART_LOG
    kill -9 $PID
fi
 
PID=$(netstat -tpln|grep $PORT | cut -d 'N' -f2 | sed -s "s/\/java//g" | sed -s 's/ //g')
echo "netstat PID: "$PID >> $RESTART_LOG
if [[ $PID =~ ^[0-9]+$ ]]
then
    echo 'kill -9 '$PID >> $RESTART_LOG
    kill -9 $PID
fi
 
#启动
nohup /home/agent/jdk/jdk-17.0.10+7/bin/java -jar $DIR/$NEW_NAME --spring.profiles.active=$ENV -Duser.timezone=Asia/Shanghai --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED >> $LOG_PATH/$MODULE-nohup.log 2>&1 &
 
PID=$!
echo 'THIS PID: '$PID >> $RESTART_LOG
 
echo 'release result ==> '$tmp >>  $LOG_PATH/$MODULE-nohup.log
 
if [ "$3" = "2" -o "$3" = "3" ]
then
        tail -fn 200 $LOG_PATH/$MODULE-nohup.log
fi
 
# 切换到目标文件夹
HIS_PATH=$DIR/history
echo 'HIS_PATH: '$HIS_PATH >> $RESTART_LOG
cd $HIS_PATH
 
# 列出目录中的文件,按修改时间排序,并跳过最新的两个文件
files_to_delete=$(ls -t | tail -n +3)
 
# 循环删除文件
for file in $files_to_delete; do
    rm -f "$file"
    echo "rm old jar: $file" >> $RESTART_LOG
done

  

posted @   xiluhua  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2018-06-05 局域网物理机与虚拟机的互通访问
2016-06-05 telnet不通11211端口,防火墙
点击右上角即可分享
微信分享提示