jenkins配置自動執行sql指令碼
阿新 • • 發佈:2018-12-13
shell指令碼: bigsql="select big_version,small_version from d0mstore.db_current_version order by big_version desc limit 1;" big_version=`mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "${bigsql}" 2> /dev/null | awk NR==2'{print $1}'` echo $big_version smallsql="select big_version,small_version from d0mstore.db_current_version where big_version='$big_version' order by small_version desc limit 1;" small_version=`mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "${smallsql}" 2> /dev/null | awk NR==2'{print $2}'` echo $small_version #檢視大版本 for i in `ls /root/sql` do #大版本未更新情況 if (("$i" == "$big_version"));then echo "$i" #檢視小版本 for x in `ls /root/sql/\$i` do #判斷小版本是否有更新sql檔案 if (("$x" > "$small_version"));then echo "$x" #執行版本sql mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 < /root/sql/$i/$x/DML.sql if [ $? == 0 ];then #記錄執行當前的版本號 mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "insert into d0mstore.db_current_version(big_version,small_version) values('$i','$x');" #記錄當前版本好到執行歷史表 mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "insert into d0mstore.db_current_version_history(big_version,small_version) values('$i','$x');" && echo "scripts Success" else echo "scripts FALSE" fi else echo "scripts is not updated" fi done #新增大版本情況 elif (("$i" > "$big_version"));then #檢視新增大版本下的小版本 for c in `ls /root/sql/\$i` do #執行小版本下的sql檔案 mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 < /root/sql/$i/$c/DML.sql #判斷sql是否執行成功,執行成功則執行插入sql執行記錄表和歷史執行表 if [ $? == 0 ];then mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "insert into d0mstore.db_current_version(big_version,small_version) values('$i','$c');" mysql -u資料庫使用者 -p密碼 -h ip -P 資料庫埠 -e "insert into d0mstore.db_current_version_history(big_version,small_version) values('$i','$c');" && echo "scripts Success" else "scripts FALSE" fi done else echo "scripts FALSE" fi done