ogg批量配置_OGG运维优化脚本(二)-信息修改类--批量加表

本文介绍了如何使用bash脚本在OGG环境中批量添加表格配置,包括过滤已存在的表和自动增加日志。脚本通过交互式方式获取用户输入,对EXTRACT和发送进程有效,并详细记录操作日志。脚本适用于统一部署在$home/ggserver路径下的OGG程序。
摘要由CSDN通过智能技术生成

现在开始介绍脚本,所有的脚本必须在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值