前端之家收集整理的这篇文章主要介绍了
shell循环etl跑历史数据,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/bin/sh
if [ ! -z $1 ]
then
file_name="$1"
else
echo "输入执行文件路径!"
exit
fi
if [ ! -z $2 ]
then
start_date=`date --date="${2}" +%Y-%m-%d`
else
start_date=`date -d'-1 day' +%Y-%m-%d`
fi
if [ ! -z $3 ]
then
end_date=`date --date="${3}" +%Y-%m-%d`
else
end_date=`date +%Y-%m-%d`
fi
echo "start_date=$start_date"
echo "end_date=$end_date"
while [[ $start_date < $end_date ]]
do
dt=`date --date="${start_date}" +%Y%m%d`
echo "执行日期:${dt}"
cmd="bash ${file_name} ${dt}"
eval $cmd
start_date=`date -d "+1 day $start_date" +%Y-%m-%d`
done
动态执行脚步需传递参数
第一个参数执行脚步路径
第二个参数任务执行开始日期【默认是当前日期前一天】
第三个参数任务执行结束日期【默认是当前日期】
demo: sh run_etl.sh /home/hadoop/dy_run_etl/tesh_etl.sh [20170610] [20170615]