shell在指定目錄下批量執(zhí)行sql腳本的實(shí)例
如下所示:
#!/bin/bash
#execute all script in specified directory
MYDATE=`date +%F'-'%T'-'%w`
MYSQL_PATH=/tmp/scripts #指定的目錄
LOG_FILE=/tmp/scripts/exec_${MYDATE}.log
confirm=
db_name=
db_pass=
for file in ${MYSQL_PATH}/*
do
if [ -f "$file" ] ; then
postfix=`echo $file | awk -F'.' '{print "."$NF}'`
if [ $postfix = ".sql" ] ; then
if [ ! $db_name ] ; then #如果沒(méi)有指定數(shù)據(jù)庫(kù)
read -p "請(qǐng)輸入數(shù)據(jù)庫(kù)名:" db_name
read -p "你輸入的數(shù)據(jù)名是【$db_name】,確認(rèn)繼續(xù)請(qǐng)輸入--yes--: " confirm
fi
if [ "$confirm" = "yes" ] && [ -n $confirm ] ; then
if [ ! $db_pass ] ; then #如果沒(méi)有設(shè)置密碼
stty -echo #密碼輸入保護(hù)關(guān)閉顯示
read -p "請(qǐng)輸入數(shù)據(jù)庫(kù)密碼:" db_pass
echo -e "\n"
stty echo
fi
mysql -uroot -p$db_pass -P3306 --default-character-set=utf8 ${db_name} < $file >& error.log
echo $file
echo -e "\n===========$file=============\n" >>${LOG_FILE}
cat error.log >>${LOG_FILE} #輸出執(zhí)行日志
error=`grep ERROR error.log` #讀取錯(cuò)誤日志信息
if [ -n "$error" ] ; then #如果有錯(cuò)誤就退出程序
echo $error
exit
fi
else
echo "您已經(jīng)取消操作!"
exit
fi
fi
fi
done
以上這篇shell在指定目錄下批量執(zhí)行sql腳本的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
shell 生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)
這篇文章主要介紹了 shell 生成隨機(jī)數(shù)的實(shí)現(xiàn)方法總結(jié)的相關(guān)資料,希望通過(guò)本能幫助到大家,讓大家徹底掌握這幾種隨機(jī)數(shù)的方法,需要的朋友可以參考下2017-09-09
Shell腳本調(diào)快調(diào)慢系統(tǒng)時(shí)間(測(cè)試服務(wù)器時(shí)使用)
這篇文章主要介紹了Shell腳本修改系統(tǒng)時(shí)間(測(cè)試服務(wù)器時(shí)使用),本文腳本用于調(diào)快或者調(diào)慢系統(tǒng)時(shí)間,需要的朋友可以參考下2014-12-12
linux中shell腳本實(shí)現(xiàn)下載完關(guān)機(jī)
本文給大家分享的是個(gè)人在實(shí)際應(yīng)用中制作的一個(gè)小程序,十分的實(shí)用,推薦給大家,有需要的小伙伴可以參考下。2015-03-03
一個(gè)下載網(wǎng)頁(yè)圖片的shell腳本
這篇文章主要介紹了一個(gè)下載網(wǎng)頁(yè)圖片的shell腳本,需要的朋友可以參考下2014-03-03
shell將腳本輸出結(jié)果記錄到日志文件的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇shell將腳本輸出結(jié)果記錄到日志文件的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
關(guān)于"Argument?list?too?long”參數(shù)列表過(guò)長(zhǎng)的四種解決方法
Linux下報(bào)錯(cuò)“命令參數(shù)列表過(guò)長(zhǎng)”,在用mv命令一次移動(dòng)3萬(wàn)多個(gè)文件時(shí)失敗了,原始命令類(lèi)似這樣:”mv?$(ls?dir1)?dir2“,錯(cuò)誤提示的中心思想是:”你這參數(shù)也太TM多了吧“,本文給大家分享四種解決”Argument?list?too?long”參數(shù)列表過(guò)長(zhǎng),感興趣的朋友一起看看吧2023-02-02

