linux脚本的数据输出到excel,通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱...

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

#!/bin/bash

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

#Data:2018-06-14

#Name:Zhang

#数据库连接地址

DBServer='192.168.1.1'

#数据库用户名

DBUserName='zhang'

#数据库密码

DBPasswd='zhang'

###########################################################

#选择数据库

Use_Cmd="usezhang"

#查询数据库信息sql语

Select_Cmd="SELECT*FROMSTUDENTS;"

###########################################################

#后台支付信息保存路径

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_DataDirisun-writeable."&&exit0

test!-d$LogDir&&$MKDIR-p$LogDir

test!-w$LogDir&&echo"Error:$LogDirisun-writeable."&&exit0

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#####"

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

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值