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

前端之家收集整理的这篇文章主要介绍了通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 通过shell导出数据库查询结果到excel中,并通过邮件发送到邮箱
  2. #!/bin/bash
  3. #通过shell查询数据信息并保存在excel中,并记录日志
  4. #Data:2018-06-14
  5. #Name:Zhang
  6.  
  7. #数据库连接地址
  8. DBServer='192.168.1.1'
  9. #数据库用户名
  10. DBUserName='zhang'
  11. #数据库密码
  12. DBPasswd='zhang'
  13. ###########################################################
  14. #选择数据库
  15. Use_Cmd="usezhang"
  16. #查询数据库信息sql
  17. Select_Cmd="SELECT*FROMSTUDENTS;"
  18. ###########################################################
  19. #后台支付信息保存路径
  20. Payment_DataDir='/opt/select_back'
  21. #日志保存路径
  22. LogDir=/opt/select_back/logs
  23. #数据导出时间
  24. backtime=`date+%Y%m%d%H%M`
  25. #保存文件名称
  26. Dataname="支付订单信息"
  27. ###########################################################
  28. #邮件收件人
  29. #Email_receiver_people="zhang@163.com"
  30. #邮件主题
  31. #Email_Subject="详细信息$backtime"
  32. ##########################################################
  33. MKDIR='/bin/mkdir'
  34. #########################################################
  35.  
  36. echo"##################判断备份路径#############################"
  37. test!-d$Payment_DataDir&&$MKDIR-p$Payment_DataDir
  38. test!-w$Payment_DataDir&&echo"Error:$Payment_DataDirisun-writeable."&&exit0
  39. test!-d$LogDir&&$MKDIR-p$LogDir
  40. test!-w$LogDir&&echo"Error:$LogDirisun-writeable."&&exit0
  41.  
  42. echo"######################备份开始#############################"
  43. echo"">>$LogDir/$Dataname.log
  44. echo-e"\033[44;32m-------------------------分割线-----------------------\033[0m\n">>$LogDir/$Dataname.log
  45. echo"导出时间为$backtime,导出${Dataname}文件开始">>$LogDir/$Dataname.log
  46. /usr/local/MysqL/bin/MysqL-u$DBUserName-h$DBServer-p$DBPasswd-e"$Use_Cmd;$Select_Cmd">$Payment_DataDir/$Dataname-$backtime.xls
  47. #sed-i's/^/`&/g'$Payment_DataDir/$Dataname-$backtime.xls
  48. #使用iconv转换编码格式,把linux的utf8转换成windows的gbk
  49. iconv-f"utf-8"-t"gbk"$Payment_DataDir/$Dataname-$backtime.xls>$Payment_DataDir/Orders.xls
  50. #因第一列数据超过18位,excel中使用了科学计数法,所以把第一列加了“`”转换成文本格式
  51. sed-i's/^/`&/g'$Payment_DataDir/Orders.xls
  52. if["$?"==0];then
  53. #把导出结果通过邮件脚本,发送到邮箱
  54. /opt/py3/bin/python3/opt/select_back/select_mail.py
  55. echo"导出时间为$backtime,导出$Dataname文件结束!!!">>$LogDir/$Dataname.log
  56. echo"MysqL-$Dataname数据导出成功!!!">>$LogDir/$Dataname.log
  57. else
  58. echo"导出时间为$backtime,导出$Dataname文件结束!!!">>$LogDir/$Dataname.log
  59. echo"MysqL-$Dataname数据导失败!!!">>$LogDir/$Dataname.log
  60. fi
  61.  
  62. echo"######################导出数据结束,时间为:$backtime#####"

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

猜你在找的Bash相关文章