通過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,人工智能,集羣,微服務架構和分佈式的解決方案和求職信息等。掃描下方二維碼進行關注!  

                                                      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章