OGG运维优化脚本(二)-信息修改类--批量加表
admin
2023-05-24 18:22:36
0

现在开始介绍脚本,所有的脚本必须在prm配置文件添加注释后才能成功使用

详细请参考 脚本部署准备 

实际的运维过程中,我们的OGG程序都统一部署在$home/ggserver路径下,


批量加表

文件名: insert.sh

脚本所在路径:$HOME/ggscript/gginsert

功能:为满足应用时常提出的大批量增加同步表需求

用于批量加表,包括重复配置表过滤功能以及附加日志自动增加功能

该脚本通过edit脚本选择调用

该脚本目前只能对EXTRACT发送进程生效

日志路径: $HOME/gglog/gginsert


#!/bin/bash
backuptime=`date +%Y%m%d-%H%M`
datenow=`date +%Y%m%d%H`
 cd $HOME/ggscript/gginsert

echo $backuptime
echo "This script will search for the table that has been added and insert new table( by RenYi)"
echo $backuptime > ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'



ls -lrt $HOME/ggserver/dirprm/e*.prm $HOME/ggserver/dirprm/p*.prm
$val
#输入需操作的进程对应文件名(prm结尾)
read -p "Please enter the prm file name:"  val
echo "--------insert file name------" >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
echo $val >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'

#输入需要批量增加表对应的区域
cat $HOME/ggserver/dirprm/$val|grep Begin
read -p "Please enter the Area name:" area
echo "--------insert area------" >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
echo $area >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'


#在vi界面内粘贴需要增加的表名(无TABLE前缀,无分号结尾,请勿插入空格)
echo "Please Enter the table you want to add(Please enter any key)-Do not include spaces!"
read -n 1
vi AddTemp

echo "-----insert table------"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
cat  AddTemp >>  ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'

#echo $val
#echo "awk '/--$area-Begin/,/--$area-End/{if(i>1)print x;x=$1;i++}' $HOME/ggserver/dirprm/$val"
#重复表比对过滤
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 AddTemp2 |sort -n > AddTable
cat AddedTemp2 |sort -n > AddedTable
rm -f AddTemp



comm -12  AddTable AddedTable > Duplicate
num=`sed -n '$=' Duplicate`
echo "Check out the already added table in file "Duplicate",there were  '$num'  tables has being added"
echo "---------The already added table---------"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
cat Duplicate >>  ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'


comm -23  AddTable AddedTable > NeedToAdd
num=`sed -n '$=' NeedToAdd`
echo "Check out the Not yet add table in file "NeedToAdd",,there are  '$num'  tables not add"
echo "---------The not yet added table---------"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
cat NeedToAdd >>  ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'


#rm -rf AddedTable
#rm -rf AddTable

#表插入操作
echo "Do you want to insert the table into '$val'?"
read -p "Please enter y or n:"  con
if [ "$con" == "y" ]
                then
                        echo "backup the '$val' to the '$HOME/ggserver/dirprm/bak/$val.$backuptime.bak'"
                        echo "backup the '$val' to the '$HOME/ggserver/dirprm/bak/$val.$backuptime.bak'"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
                        cp $HOME/ggserver/dirprm/$val $HOME/ggserver/dirprm/bak/$val.$backuptime.bak
                        echo "backup complete"
                        echo "backup complete" >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'

                        echo "modifying table "
                        sed 's/^/TABLE /' NeedToAdd > table1
                        sed 's/$/;/' table1 > table2
        num=`sed -n '$=' table2`
                        rm -f table1
                        read -p "Please enter your name:" name
                        echo "-----The Operator is '$name'--------" >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
                        echo "inserting '$num' tables into '$val' "
                        echo "inserting '$num' tables into '$val' " >> ''$HOME'/ggscript/gginsert/log/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


                echo "insert complete"
                echo "---------insert complete"--------- >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
                else
                        echo "process complete"
                        echo "process complete"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
fi

#附加日志增加操作
echo "Do you want to addtrandata?"
read -p "Please enter y or n:"  conb
if [ "$conb" == "y" ]
                then
                sed 's/^/add trandata /' NeedToAdd > addtrandata
                NUX=`sed -n '$=' addtrandata`
#               echo $NUX
                        i=1
#echo $i
                cd $HOME/ggserver
                        echo dblogin `more $HOME/ggserver/dirprm/$val|grep USERID` > dirdat/addtrandata
#echo $login
                        while [ "$i" -le "$NUX" ]
                                do 
                                sed -n "${i}p"  $HOME/ggscript/gginsert/addtrandata >> dirdat/addtrandata
                                i=`expr $i + 1`
                        done
                        echo   OBEY dirdat/addtrandata |./ggsci
                else
                echo "process complete"
                echo "process complete"  >> ''$HOME'/ggscript/gginsert/log/InsertLog-'$backuptime'.log'
                exit 2
fi




相关内容

热门资讯

万斯:美伊谈判取得“很大进展” △5月19日,美国副总统万斯在白宫新闻简报会上当地时间5月19日,美国副总统万斯在白宫新闻简报会上表...
全环境立德树人|广饶县:“科普... 近日,一场别开生面的 “科普漂流”活动在东营市科技馆火热启程。来自广饶县的40余名青少年走出课堂,在...
西安AI数字人选择指南 在西安,AI数字人已经从概念走向了实实在在的应用。无论是企业宣传、短视频制作,还是直播带货,数字人正...
10分钟飞越深山!无人机送出“... 在四川省雅安市汉源县唐家镇尚礼村,一架满载新鲜甜樱桃的无人机从海拔1500米的起飞点缓缓升空,平稳驶...
能源金融双线突破,西方制裁反证... 01五月北京:全球外交焦点汇聚,中俄高层会晤启新程今年5月,全球外交的钟摆,正以前所未有的高频在北京...
不仅要把人工智能送上天,长三角... 能够在3分钟内完成未来60天天气预测的“伏羲”气象模型,如今正实时加工着来自太空的“一手”气象数据。...
追觅创始人俞浩称无比感谢雷军:... 【CNMO科技消息】据CNMO科技了解,追觅科技创始人兼CEO俞浩近日在访谈中回顾了公司早期获得小米...
跑遍多家官方旗舰店!2026手... 大家好,我是小杨。说实话,写这篇文章之前,我花了整整一个周末,把各大手机官方旗舰店挨个逛了一遍。不是...
AMD AI开发者大会首次在中... IT之家 5 月 19 日消息,今天,AMD AI 开发者大会(AMD AI DevDay 2026...
警惕!这些“高科技疗愈”全是骗... 本文转自【光明日报】; 当前,一些不法分子打着“生命科学”等名义,编造“脑波修复”“能量疗愈”“光波...