Несколько полезных шаблонов
платформа: *nix (HP-UX)
тип: shИзвестно GLOBAL_DBNAME, надо определить ORACLE_HOME. Предполагаем, что listener.ora заполнен должным образом.
На вход подаем $DB_NAME
Перевод строки после
sed 's/))(/))\ обязателен, на следующей строке текст без отступов.
for I in `ps -ex|awk '/[t]nslsnr/ {print $4":"$5}'`
do
L=`echo $I|cut -f2 -d":"`
P=`echo $I|sed 's|\(.*\)/bin/.*|\1|g'`/network/admin/listener.ora
ORACLE_HOME_TMP=`paste -s $P | tr -d " \t" | sed 's/.*SID_LIST_'"$L"'=(SID_LIST=\(.*)))\).*/\1/g' | sed 's/))(/))\
(/g' | grep "=$DB_NAME)" | sed 's/.*(ORACLE_HOME=\([^)]*\)).*/\1/'`
[ ".$ORACLE_HOME_TMP" != "." ]&&export ORACLE_HOME=$ORACLE_HOME_TMP
done
Путь до дерикторий OVO
OVPATH=`whereis ovpath | awk '{print $2}'`
OPC_CMD=`$OVPATH -instdir bin`/opcmon
OPC_INSTRUMENTATION=`$OVPATH -datadir instrumentation`
Ну и по аналогии остальное
Использую некий сводный конфиг с кучей SQL-запросов, такого вида:
#smsx_received received smsx messages#
SELECT COUNT(*)
FROM msg_log
WHERE processdate>=sysdate-1/24
AND description LIKE '%(SMSX gateway: 13)%';
#UD_job monitoring#
SELECT jobid, description
FROM int.v_mon_ud_jobs;
#
Вытащить конкретный запрос вот так: ($SQL_LIST - путь к конфигу, $SQL_SEQ - "метка" запроса)
paste -s -d" " $SQL_LIST | sed -e 's|.*#'"$SQL_SEQ"'[^#]*#\([^#]*\)#.*|\1|g' >> $SQL_TMP