經過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