自动部署 linux下载jar包并更新

发布时间 2023-04-17 01:00:33作者: 一只桔子2233

1、参考

去除window的'\r'

awk '$5>10240 {print $9} 中$5 $9 是什么意思

Linux curl命令详解

auto_update_jar.zip脚本下载

2、解释

3、脚本

#!/bin/bash

APP_NAME=test.jar                  # 定义JAVA程序名
APP_FILE=test2.jar                 # 可下载的文件名
LOG_FILE="$APP_NAME.log"           # 定义日志文件名称
START_TIME=$(date +%Y-%m-%d\ %H:%M:%S)

#curl -s ftp://192.168.1.7 --user ftp:123456 | grep test2.jar.finish
#上面一行的结果是下面一行
#04-16-23  11:26PM                 1056 test2.jar.finish
#获取print $4
#APP_NEW_FILE=`curl -s ftp://192.168.1.7 --user ftp:123456 | grep $APP_FILE.finish | awk '{print $9}'`
APP_NEW_FILE=`curl -s ftp://192.168.1.7 --user ftp:123456 | grep $APP_FILE.finish | awk '{print $4}'`
echo "=== APP_FILE.finish=$APP_FILE.finish    APP_NEW_FILE=$APP_NEW_FILE"

if test -n "$APP_NEW_FILE"; then
  # 下载文件并替换
  curl "ftp://192.168.1.7" --user ftp:123456 -X "DELE $APP_FILE.finish"
  curl "ftp://192.168.1.7/$APP_FILE" --user ftp:123456 -o "$APP_FILE"
  curl "ftp://192.168.1.7" --user ftp:123456 -X "DELE $APP_FILE"

  rm -f "$APP_NAME"
  mv "$APP_FILE" "$APP_NAME"

  # 查询进程并终止
  PID=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}'`
  kill -9 $PID
  echo "$APP_NAME 的进程 $PID 已经终止"

  # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  # nohup java -jar $APP_NAME > $LOG_FILE & tail -f $LOG_FILE
  nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &

echo "$START_TIME Updated ok !!! "
 
#  echo "$START_TIME Updated OK" >> update.log
# else
#   echo "$START_TIME No new update package for $APP_NAME" >> update.log

fi