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

本文档描述了一个shell脚本流程,用于从数据库中读取数据并生成csv文件。首先通过sql查询获取数据,然后利用bash脚本处理数据并调用csvgen.sh生成csv文件。csvgen.sh脚本会根据不同的业务类型执行相应的SQL模板,并将结果保存到指定目录的csv文件中,同时记录日志。
摘要由CSDN通过智能技术生成

需求:导出数据库中数据,生成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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值