天天看點

Linux自動釋出Java程式腳本

Linux自動釋出Java程式腳本

  • ​​1. 編譯腳本​​
  • ​​2. 啟動腳本​​
  • ​​3. 停止腳本​​
  • ​​4. 最終釋出腳本​​

1. 編譯腳本

#! /bin/bash
time="`date +%Y%m%d-%H%M`"
echo "$time"

# 進入git拉取目錄
cd /usr/local/src/sources/xxx/

# 拉取master主分支
echo "git checkout&pull origin/master"
git fetch --all
git reset --hard origin/master
git pull

# maven清理 打包 跳過測試
echo "maven build start...."
mvn clean package -e -Dmaven.test.skip=true -Pprod

# 将打包好的jar移動的運作目錄
echo "copy build target to run dir"
cp /usr/local/src/sources/xxx/target/xxx.jar /opt/data/jardata/xxx/xxx.jar


echo "^^^^^^^^^^^^^^^^^^^^^^ build success ^^^^^^^^^^^^^^^^^^^^^^^"

# 釋放緩存
echo 3 > /proc/sys/vm/drop_caches
echo "^^^^^^^^^^^^^^^^^^^^^^ 緩存釋放 success ^^^^^^^^^^^^^^^^^^^^^^^"      

2. 啟動腳本

#/usr/bin/env bash

# 設定log級别 目錄是目前目錄logs下面
set log.level=INFO
set logging.path=./logs/

# 修改執行權限
chmod +x /opt/data/jardata/xxx/*.jar /opt/data/jardata/xxx/*.war

# java背景運作 
nohup java -jar /opt/data/jardata/xxx/xxx.jar --spring.profiles.active=prod --server.port=8080 2>&1 &      

3. 停止腳本

port8080=8080

# 查詢端口對應的pid
pid8080=$(netstat -nlp | grep :$port8080 | awk '{print $7}' | awk -F"/" '{ print $1 }');
#殺掉對應的程序,如果pid不存在,則不執行
if [  -n  "$pid8080"  ];  then
    kill  -9  $pid8080;
fi      

4. 最終釋出腳本

#!/bin/sh
./stop-all.sh
./build-all.sh
sleep 10
./start-all.sh      

繼續閱讀