mysql快速导数脚本,shell实现半自动化导数

需求

有部分线下数据,需要不定时手动导入到数据库。事情会比较繁杂,花时间。

解决

这是一个重复的工作,有固定的流程。可以想办法用shell脚本来实现。

设计了如下过程的shell脚本:

1.将需要导入的数据表装换成csv格式,并放入制定的文件夹下。

2.脚本执行时,会首先将load.log这个存放导数日志的文件进行清空。

3.执行一个循环,读出指定文件夹下面的每个文件名。连接数据库,进行数据导入,并将数据导入的结果写入load.log文件。

4.循环执行结束后将该日志文件发送给相关人员邮箱。就可以监控这次的数据导入是否执行成功。方便查错。

5.将目录下文件全部删除。

#! /bin/bash

folder="/aaa/data" #存放文件的目录

ture >Load.log #清空日志文件

for file in ${folder}/*; #循环获取文件名

do

file_name=`basename $file`

path=${folder}/$file_name

(

db2 connect to databasename user db2_user using mima

db2 "load from $path of del MODIFIED BY codepage=1386 insert into TABLE(TIME,LID,ITEM_ID,ITEM_NAME,UNIT,AMOUNT,REMARK,SUGGESTION)" >>Load.log #数据导入并将结果写进日志

)

done

mail -s "load" xxxxxxxx@qq.com < Load.log #发送email

rm -rf ${folder}/*

本来还希望实现,脚本的自动执行。试了crontab命令,但是还没有成功。

邮件配置参考:http://www.jianshu.com/p/0ef1eaad9870