1、参考
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