shell 循环获取最近一段时间日期
背景: 调用远程 RPC 给大数据补数据,大数据缺少最近两个月的数据,所以需要shell 调用 jar 增量获取数据。
调用: nohup sh rangeHttp.sh -h -a LSHSPZ -d 20220912 > nohup_LSHSPZ.out 2>&1 &
样例:
#!/bin/bash
#jar包文件名称 LSHSPZ 每天获取最近70天数据
APP_NAME=data-lake-app-1.0.0-SNAPSHOT.jar
#日志文件路径及名称
datenow=$(date "+%Y%m%d%H%M%S")
LOG_FILE=${3}_${datenow}_nohup.out
#查询进程,kill 当前jar/java程序
pid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${pid} ]; then
kill -9 $pid
echo "Stop ${pid} Finished"
fi
# 暂停
sleep 2
# 启动jar包,日志文件,2>&1 & 表示打开或指向同一个日志文件
etldate=$5
if [ -n "$etldate" ];then
for((i = 3; i >= 0; i--))
do
let currdate=`date -d "$i days ago ${etldate}" +%Y%m%d`
nohup java -jar $APP_NAME -h -a LSYSLB > ${currdate}_${LOG_FILE} 2>&1 &
done
fi
浙公网安备 33010602011771号