新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
OGG運(yùn)維優(yōu)化腳本(三)-信息修改類--快速加表-創(chuàng)新互聯(lián)
文件名:add.sh
所在路徑:$HOME/ggadd
功能:批量加表腳本的優(yōu)化版,用于針對少量加表需求,包括重復(fù)配置表過濾功能以及附加日志自動增加功能
該腳本通過alias方式寫入賬戶系統(tǒng)配置文件.profile 和.bash_profile通過命令使用
日志路徑:$HOME/ggscript/ggadd
具體腳本內(nèi)容
#!/bin/bash #條件判斷,確定調(diào)用時參數(shù)是否完整 #格式必須為 進(jìn)程名 表名 區(qū)域名 操作用戶 if [ $# -eq 0 ]; then echo "info EXTRACT TABLE AREA user" exit 2 fi if [ $# -eq 1 ]; then echo "info EXTRACT TABLE AREA user" exit 2 fi if [ $# -eq 2 ]; then echo "info EXTRACT TABLE AREA user" exit 2 fi if [ $# -eq 3 ]; then echo "info EXTRACT TABLE AREA user" exit 2 fi backuptime=`date +%Y%m%d-%H%M` datenow=`date +%Y%m%d%H` echo $backuptime > ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' cd $HOME/ggscript/ggadd echo $backuptime echo "This script can only insert one table( by RenYi)" val=$1 echo $2 > AddTemp area=$3 name=$4 #echo $val cat AddTemp #echo $area echo "--------insert process name------" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo $val >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' val=`echo $val|tr a-z A-Z ` #進(jìn)程類型判斷,如果為E開頭則歸類為抽取進(jìn)程,如果P開頭歸類為發(fā)送進(jìn)程 if [ `echo $val|grep ^E` ];then IType=EXTRACT elif [ `echo $val|grep ^P` ];then IType=POST elif [ `echo $val|grep ^R` ];then echo "can not operate the REPLICAT process" echo "can not operate the REPLICAT process" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo "process break off" echo "process break off" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' exit 2 else echo "only can operate the EXTRACT and the POST process" echo "can not operate the REPLICAT process" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo "process break off" echo "process break off" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' exit 2 fi #定位進(jìn)程文件并判斷參數(shù)輸入進(jìn)程是否存在 val=`echo $val.PRM|tr A-Z a-z` echo $val echo "--------insert file name------" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo $val >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' cd $HOME/ggserver/dirprm if [ ! -e $val ]; then echo "the EXTRACT is not exist" echo "the EXTRACT is not exist" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' exit 2 fi #定位區(qū)域并判斷參數(shù)輸入的區(qū)域是否存在 cd $HOME/ggscript/ggadd echo $val cat $HOME/ggserver/dirprm/$val |grep Begin|sed 's/--//g'|sed 's/-Begin//g' > arealist cat arealist echo "------------area check-------------- " >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' check=`grep -w $area arealist` if [ "$check" = "$area" ];then echo "area is exist" echo "area is exist" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' else echo "area is not exist" #echo "area is not exist" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' #exit 2 fi #重復(fù)表判斷,過濾掉已經(jīng)被配置的表 cat $HOME/ggserver/dirprm/$val|awk '/--'$area'-Begin/,/--'$area'-End/{if(i>1)print x;x=$0;i++}' > temp awk -F '--' '($1) { print $1}' temp > temp2 rm -rf temp sed -e '/^$/d' temp2 > temp3 rm -rf temp2 awk -F ',' '{print $1}' temp3 >temp4 rm -rf temp3 awk -F ';' '{print $1}' temp4 >temp5 rm -rf temp4 echo "Confirm the tables that have increased" cat temp5|awk -F 'TABLE ' '{print $2}' > AddedTemp rm -rf temp5 sed '/^$/d' AddedTemp > AddedTemp2 sed '/^$/d' AddTemp > AddTemp2 cat AddedTemp2 |sort -n > AddTable comm -12 AddTable AddTemp > Duplicate echo "--------Table Check---------------" cat AddTemp >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo "--------Table Check---------------">> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' check=`grep -w $2 Duplicate` if [ "$check" = "$2" ];then echo "The table has being added" echo "The table has being added" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' echo "process break off" exit 2 else echo "The table not be add" echo "The table not be add" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' fi #配置文件備份 cp $HOME/ggserver/dirprm/$val $HOME/ggserver/dirprm/bak/$val.$backuptime.bak echo "backup complete" echo "backup complete" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' #表插入操作 sed 's/^/TABLE /' AddTemp > table1 sed 's/$/;/' table1 > table2 rm -f table1 echo "-----The Operator is '$name'--------" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' sed '1 i\ --'$datenow'-'$name'-add ' table2 > table3 rm -f table2 mv table3 table2 echo "inserting table" sed '/'$area'-Insert/r table2 ' $HOME/ggserver/dirprm/$val > $HOME/ggserver/dirprm/tem3 rm -f $HOME/ggserver/dirprm/$val mv $HOME/ggserver/dirprm/tem3 $HOME/ggserver/dirprm/$val #判斷,如果為EXTRACT進(jìn)程則寫入附加日志,如果為發(fā)送進(jìn)程,則跳過 if [ "$IType" == "EXTRACT" ];then sed 's/^/add trandata /' AddTemp > addtrandata cd $HOME/ggserver echo dblogin `more $HOME/ggserver/dirprm/$val|grep USERID` > dirdat/addtrandata cat $HOME/ggscript/ggadd/addtrandata >> dirdat/addtrandata echo OBEY dirdat/addtrandata |./ggsci echo "process complete" echo "process complete" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' exit 2 elif [ "$IType" == "POST" ];then echo "process complete" echo "process complete" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' exit 2 else echo "process complete" echo "process complete" >> ''$HOME'/gglog/ggadd/InsertLog-'$backuptime'.log' fi另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:OGG運(yùn)維優(yōu)化腳本(三)-信息修改類--快速加表-創(chuàng)新互聯(lián)
文章出自:http://fisionsoft.com.cn/article/ceoisj.html