[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腳本的目錄與名稱,設置時間什麼的 拖拖拽拽點點就好。

最後

整體來說並不難,能看得懂,但是自己寫就是另一回事了

這些東西建議整理成模板,使用的時候拿出來一套,效率定是事半功倍

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章