shell脚本---------数据库中数据导出到csv文件中

需求:导出数据库中数据,生成csv文件(定时任务去做)

入口:扫表操作

扫表的sql:(polljob.sql)

select oid,jobId,batchCode,COALESCE(batchStartTime,'2000-01-01'),COALESCE(batchEndTime, '2030-01-01'),jobStatus,COALESCE(offsetOid,'0')
from T_MONEY_JOB 
WHERE workerPid is null and jobStatus in ('toRun');

 根据扫描出的内容,做具体的操作(jobpoller.sh):

#!/bin/bash

basedir=`dirname $0`
cd $basedir
source $basedir/db.conf.sh

cat polljob.sql | $mysqlcli -N |
while IFS=$'\t' read oid jobId batchCode batchStartTime batchEndTime jobStatus offsetOid productOid
do
	args=("$jobId" "$oid" "$batchCode" "$batchStartTime" "$batchEndTime" "$jobStatus" "$offsetOid" "$productOid")
	script=csvgen.sh

	sh $script "${args[@]}"
done 

进入到csvgen.sh脚本:

#!/bin/sh

key=$1
condition=$2
filetype=$key
basedir=`dirname $0`

confirmDate=$(date +"%Y-%m-%d" -d '-1 day')
startTime="${confirmDate} 00:00:00"
endTime="${confirmDate} 23:59:59"

[ $basedir == '.' ] && basedir=$PWD

datadir=$basedir/$key/data
logsdir=$basedir/$key/logs

# remove old files within one same minute
oldDate=$(date -d "last month" "+%Y%m%d")

if [ -d $datadir/$oldDate ];then
   rm -rf $datadir/$oldDate
   echo "完成删除动作"
   if [ -d $datadir/$oldDate ];then
     echo "删除失败"
   else
     echo "删除成功"
  fi
else
   echo "目录不存在"
fi

[ -d $datadir ] || mkdir -p $datadir
[ -d $logsdir ] || mkdir -p $logsdir

today=`date +%Y%m%d`
fileDate=`date +%Y-%m-%d`
batch="`date +%Y%m%d%H%M00`"
datadir=$datadir/$today/$batch
[ -d $datadir ] || mkdir -p $datadir

#filepre=$datadir/customer_$key_

shift

#args: jobId,batchCode,batchStart,batchEnd,jobStatus,offsetOid,productOid
jobId=$1
batchCode=$2
batchStart=$3
batchEnd=$4
jobStatus=$5
offsetOid=$6
productOid=$7
[ "x$offsetOid" = "x" ] && offsetOid=$(date +%s)
source $basedir/db.conf.sh


myfiles=("customer_order_")
[ "$key" = "income" ] &
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值