Shell循环日期执行脚本

25 篇文章 0 订阅
#!/bin/bash
# sh t_bank_return.sh 20210101 20210323
. ~/.bashrc
if [ $# == 1 ]; then
    dateBegin=$1
    dateEnd=$dateBegin
elif [ $# == 2 ]; then
    dateBegin=$1
    dateEnd=$2
else
    echo "wrong number of parameters."
    exit -1
fi
schema="fn"
tbname="t_bank_return"
# 格式化时间日期
dateBegin=`date +%Y%m%d -d"$dateBegin"`
dateEnd=`date +%Y%m%d -d"$dateEnd"`
echo ${dateBegin} ${dateEnd}
example="/home/work/datax/job/fn/example/${schema}_${tbname}_example"
tempdir="/home/work/datax/job/fn"
basepath=$(cd `dirname $0`; pwd)
cd $basepath
jsonfile="${tempdir}/${schema}_${tbname}"
if [[ "$dateBegin" > "$dateEnd" ]]; then
    echo "FATAL: dateEnd must be greater than or equal to dateBegin. dateBegin: $dateBegin, dateEnd: $dateEnd"
    exit -1
fi

while [[ "$dateBegin" < "$dateEnd" ]] || [[ "$dateBegin" == "$dateEnd" ]]; do
    sed "s/DBDATE/${dateBegin}/g" ${example} > ${jsonfile}
    echo "${jsonfile} done"
    echo "~/datax/log/${schema}_${tbname}.log"
    ~/datax/bin/start_datax.sh /home/work/datax/job/${schema}/${schema}_${tbname} && bash /home/work/datax/sh-load/t_bank_return_load.sh ${schema} ${tbname} ${dateBegin}
    echo "*** $dateBegin run done ***"
    dateBegin=`date +%Y%m%d -d"+1 day $dateBegin"`
done

echo "while done"
echo "*****************************"
echo "*****************************"
#!/bin/bash
# /home/work/datax/sh-load/t_bank_return_load.sh
. ~/.bashrc
if [ $# -lt 3 ]
then
    echo "./loaddata schema tablename dateBegin"
    exit
fi
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
schema=$1
tablename=$2
dateBegin=$3
dateBegin=`date +%Y-%m-%d -d"$dateBegin"`
data_path=" /home/work/pay-datax-admin/ext/r_ext_${schema}_${tablename}_old.dat"
basepath=$(cd `dirname $0`; pwd)
cd ${basepath}
if [ ! -e ${data_path} ];then
 echo "no exist filepath:${data_path}"
 exit
fi

#DEL_SQL="delete from ${schema}.${tablename} where dt='${dateBegin}';"
LOAD_SQL="delete from ${schema}.${tablename} where dt='${dateBegin}';insert into ${schema}.${tablename} select * from pay_data_ext.r_ext_${schema}_${tablename}_old;"
#echo ${DEL_SQL}
echo ${LOAD_SQL}
tempfile="${basepath}/temp.log"
export PGPASSWORD=***
/usr/bin/psql -h *.*.*.* -p 5432 -d gp_pay -U pay_cloud_data -c "$LOAD_SQL" > ${tempfile} 2>&1
if [ $? -eq 0 ]
   then
        logmsg=`cat ${tempfile}`
        echo "load to success ${tablename}:${logmsg}"
        emailTitle="[云上][${schema}.${tablename}] load success"
        emailContent=`echo "datax load to gppay success: ${schema}.${tablename}: ${logmsg}"`
     else
        logmsg=`cat ${tempfile}`
        msg=`echo "datax load to gppay failed:${tablename}:${logmsg}"`
        emailTitle="[云上][${schema}.${tablename}] load failed"
        emailContent=`echo "datax load to gppay failed: ${schema}.${tablename}: ${logmsg}"`
fi
echo ${emailContent} | mail -s "${emailTitle}" daiyuanpei@xxx.com
#!/bin/bash
# ~/datax/bin/start_datax.sh
. ~/.bashrc
echo $#
if [ $# -lt 1 ]
then
    echo "need job config file"
    exit
fi
jobname="$1"
taskname=`echo $(basename $jobname .xml)`

echo "$jobname,taskname=$taskname"
DATAX_HOME=/home/work/datax
timenow=` date +'%H%M%S'`
cd $DATAX_HOME
outputfile="${DATAX_HOME}/log/${taskname}.log"
errorfile="${DATAX_HOME}/log/${taskname}.error"
rm ${outputfile} -f
python ${DATAX_HOME}/bin/datax.py ${jobname} >> ${outputfile} 2>${errorfile}
if [ $? -eq 0 ]
then
    tail  -n32 ${outputfile}
    exit 0
else
    tail  -n32 ${outputfile}
    exit 102
fi
tail  -n32 ${outputfile}
exit 103

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值