码迷,mamicode.com
首页 > 数据库 > 详细

通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱

时间:2018-06-25 16:51:30      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:student   err   rom   linu   CM   编码   username   mail.py   详细   

通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱 #!/bin/bash #通过shell查询数据信息并保存在excel中,并记录日志 #Data:2018-06-14 #Name:Zhang #数据库连接地址 DBServer='192.168.1.1' #数据库用户名 DBUserName='zhang' #数据库密码 DBPasswd='zhang' ########################################################### #选择数据库 Use_Cmd="use zhang" #查询数据库信息Sql语 Select_Cmd="SELECT * FROM STUDENTS;" ########################################################### #后台支付信息保存路径 Payment_DataDir='/opt/select_back' #日志保存路径 LogDir=/opt/select_back/logs #数据导出时间 backtime=`date +%Y%m%d%H%M` #保存文件名称 DataName="支付订单信息" ########################################################### #邮件收件人 #Email_receiver_people="zhang@163.com" #邮件主题 #Email_Subject="详细信息$backtime" ########################################################## MKDIR='/bin/mkdir' ######################################################### echo "##################判断备份路径 #############################" test ! -d $Payment_DataDir && $MKDIR -p $Payment_DataDir test ! -w $Payment_DataDir && echo "Error: $Payment_DataDir is un-writeable." && exit 0 test ! -d $LogDir && $MKDIR -p  $LogDir test ! -w $LogDir && echo "Error: $LogDir is un-writeable." && exit 0 echo "######################备份开始 #############################" echo "" >> $LogDir/$DataName.log echo -e "\033[44;32m-------------------------分割线-----------------------\033[0m \n" >> $LogDir/$DataName.log echo "导出时间为$backtime,导出${DataName}文件开始" >> $LogDir/$DataName.log /usr/local/mysql/bin/mysql -u$DBUserName -h$DBServer -p$DBPasswd  -e "$Use_Cmd;$Select_Cmd" > $Payment_DataDir/$DataName-$backtime.xls #sed -i 's/^/`&/g' $Payment_DataDir/$DataName-$backtime.xls #使用iconv转换编码格式,把linux的utf8转换成windows的gbk iconv -f "utf-8" -t "gbk" $Payment_DataDir/$DataName-$backtime.xls > $Payment_DataDir/Orders.xls #因第一列数据超过18位,excel中使用了科学计数法,所以把第一列加了“`”转换成文本格式 sed -i 's/^/`&/g' $Payment_DataDir/Orders.xls if [ "$?" == 0 ];then #把导出结果通过邮件脚本,发送到邮箱 /opt/py3/bin/python3 /opt/select_back/select_mail.py echo "导出时间为$backtime,导出$DataName文件结束!!!" >> $LogDir/$DataName.log echo "Mysql-$DataName数据导出成功!!!" >> $LogDir/$DataName.log else echo "导出时间为$backtime,导出$DataName文件结束!!!" >> $LogDir/$DataName.log echo "Mysql-$DataName数据导失败!!!" >> $LogDir/$DataName.log fi echo "######################导出数据结束,时间为:$backtime#####"

注:如以上有错误或者有不足的地方请指正

通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱

标签:student   err   rom   linu   CM   编码   username   mail.py   详细   

原文地址:http://blog.51cto.com/bosszhang/2132492

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!