經過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="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#####"

注:如以上有錯誤或者有不足的地方請指正python

相關文章
相關標籤/搜索