通过shell查询数据信息并保存在excel中,并记录日志

通过shell查询数据信息并保存在excel中,并记录日志

#!/bin/bash
#通过shell查询数据信息并保存在excel中,并记录日志
#Data:2018-06-14
#Name:Zhang

#数据库连接地址
DBServer='192.168.1.1'
#数据库用户名
DBUserName='zhang'
#数据库密码
DBPasswd='password'
###########################################################
#选择数据库
Use_Cmd="use name"
#查询数据库信息Sql语
Select_Cmd="SELECT
	* from name;"
###########################################################
#后台支付信息保存路径
Payment_DataDir='/opt/select_back'
#日志保存路径
LogDir=/opt/select_back/logs
#数据导出时间
backtime=`date +%Y%m%d%H%M`
#保存文件名称
DataName="支付订单信息"
###########################################################
#邮件收件人
#Email_receiver_people="[email protected]"
#邮件主题
#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
#转换编码,因Linux的编码是utf-8的编码需要转换成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#####"

         欢迎关注《51技术栈》主要专注于IT技术领域,汇聚技术大咖分享开发架构,系统运维,大数据,虚拟化,docker,k8s,人工智能,集群,微服务架构和分布式的解决方案和求职信息等。扫描下方二维码进行关注!  

                                                      

你可能感兴趣的:(ARM/Linux/Unix)