linux 导出SQL查询结果到EXCEL并通过邮件定时发送

日常工作中公司其他人员可能经常需要找运维拿公网的数据做EXCEL,对于那些定期的不变的需求我们可以通过写shell脚本配合定时任务,定时发送到对应的邮箱,减少重复劳动,提高工作效率。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash
DATE=`date '+%Y%m%d '`
#邮件接收人
MAIL=test@qq,com
#邮件抄送
CC=test@qq.com
XLS1=/tmp/测试tmp.xls
XLS2=/tmp/测试.xls
MSG=请查收附件

DB_HOST=localhost
DB_USER=root
DB_PASSWD=123456
DB_PORT=3306
DB=test
MYSQL=/usr/bin/mysql

SQL=test.sql

$MYSQL -u$DB_USER -p$DB_PASSWD -h$DB_HOST $DB < $SQL > $XLS1


#转换为UTF-8编码,不然附件内容会乱码
iconv -futf8 -tgb2312 -o$XLS2 $XLS1


echo $MSG | mail -s "${DATE}" -a $XLS2 -c $CC $MAIL

rm -rf $XLS1 $XLS2
坚持原创技术分享,您的支持将鼓励我继续创作!