[Shell] 定时任务脚本--反刷日任务/小时任务脚本模板--贴过去跑不起来你来打我--亲测完美建议收藏!~

   日期:2020-05-30     浏览:125    评论:0    
核心提示:很多时候任务要在调度平台上定时执行而你的任务很多是要靠shell脚本来实现启动在此整理了一下日任务和小时任务的shell脚本带反刷数据功能的 模板希望能帮到大家日任务+反刷日任务# !/bin/bash# XX数据XXXX每日任务脚本# 创建时间:2020年5月29日15:05:44# 创建人:鹜 骜 # shell脚本输入参数:# $1 开始时间 格式 yyyyMMdd# $2 结束时间 格式 yyyyMMdd# 这里解释一下$3 调度平台有的执行任务会加日志级别等别的参数在后shell

很多时候任务要在调度平台上定时执行

而你的任务很多是要靠shell脚本来实现启动

在此整理了一下日任务小时任务的shell脚本带反刷数据功能的 模板

希望能帮到大家

日任务+反刷日任务

# !/bin/bash
# XX数据XXXX每日任务脚本
# 创建时间:2020年5月29日15:05:44
# 创建人:鹜 骜 
# shell脚本输入参数:
# $1 开始时间 格式 yyyyMMdd
# $2 结束时间 格式 yyyyMMdd

# 这里解释一下$3 调度平台有的执行任务会加日志级别等别的参数在后面即是$3
if [ "$3" != "" ] || [ "$1" = "" ]; then
echo '=================开始执XXXX脚本================='

# 具体执行步骤(这里写自己步骤啊!)

#如果开始日期小于等于结束日期,则执行数据补刷脚本
elif [ $1 -le $2 ]; then
#获取当前日期及时间
current_date=`date +%Y%m%d`
#判断结束日期是否小于等于当前日期
if [ $2 -le $current_date ]; then
#获取输入的开始时间及结束时间参数
#开始时间
startTime=`date "+%Y%m%d" -d "$1"`
#结束时间
endTime=`date "+%Y%m%d" -d "$2"`
#如果开始时间小于等于结束时间,开始循环执行脚本
while [ `date -d "$startTime" +%s` -le `date -d "$endTime" +%s` ]
do
echo '=================开始执行XXXX反刷脚本================='' 目前反刷时间:'$startTime

# 具体执行步骤 (这里写自己步骤啊!)

if [ `date -d "$startTime" +%s` -gt `date -d "$endTime" +%s` ]; then
  break;
fi
#获取下一个日时间
startTime=`date -d "-1 day ago ${startTime}" "+%Y%m%d" `
done
#结束日期不能大于当前日期异常提示
else
echo '结束日期不能大于当前日期!'
fi
#开始日期不能大于结束日期异常提示!
else
echo '开始日期不能大于结束日期!'
fi

正常执行:

带开始时间 结束时间的反刷数据执行:

小时任务+反刷小时任务

# !/bin/bash
# XX数据XXXX每日任务脚本
# 创建时间:2020年5月29日15:05:44
# 创建人:鹜 骜 
# shell脚本输入参数:
# $1 开始时间 格式 yyyyMMdd
# $2 结束时间 格式 yyyyMMdd

if [ "$3" != "" ] || [ "$1" = "" ]; then
echo '=================开始执XXXX脚本================='

# 具体执行步骤 (这里写自己步骤啊!)

#如果开始日期小于等于结束日期,则执行数据补刷脚本
elif [ $1 -le $2 ]; then
#获取当前日期及时间
current_date=`date +%Y%m%d`
#判断结束日期是否小于等于当前日期
if [ $2 -le $current_date ]; then
#获取输入的开始时间及结束时间参数
#开始时间
startTime=`date "+%Y%m%d" -d "$1"`
#结束时间
endTime=`date "+%Y%m%d" -d "$2"`
#如果开始时间小于等于结束时间,开始循环执行脚本
while [ `date -d "$startTime" +%s` -le `date -d "$endTime" +%s` ]
do
echo '=================开始执行XXXX反刷脚本================='' 目前反刷时间:'$startTime
for (( i=0; i<24 ; i=i+1 ))
do
echo '================== "`date -d "$startTime" +%Y%m%d`" day "$i" HH =================='

# 具体执行步骤 (这里写自己步骤啊!)

done
if [ `date -d "$startTime" +%s` -gt `date -d "$endTime" +%s` ]; then
  break;
fi
#获取下一个日时间
startTime=`date -d "-1 day ago ${startTime}" "+%Y%m%d" `
done
#结束日期不能大于当前日期异常提示
else
echo '结束日期不能大于当前日期!'
fi
#开始日期不能大于结束日期异常提示!
else
echo '开始日期不能大于结束日期!'
fi

实例

【kettle】

shell脚本开头定义出kettle的路径和job存放的路径

kettlePath='/opt/pdi5.4'
jobPath='/data/etl/job'

具体执行就可以写

$kettlePath/kitchen.sh -file $jobPath/jobDemo.kjb

最后在调度平台配置shell脚本的目录与名称,设置时间什么的 拖拖拽拽点点就好。

最后

整体来说并不难,能看得懂,但是自己写就是另一回事了

这些东西建议整理成模板,使用的时候拿出来一套,效率定是事半功倍

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服