Sponsored Content
Full Discussion: script
Operating Systems Linux script Post 302448244 by felipe.vinturin on Wednesday 25th of August 2010 02:17:10 PM
Old 08-25-2010
It is not tested, but I think it works. If you face problems, let me know.

There are several you can improve on it.

Code:
cat scriptDb.sh
############
#!/bin/ksh
ORACLE_SID=$1
a=`hostname`
PSDBA="xxxxxx"

# OS Definition
myPID=$$

# Files
sqlFile="<PathTo>/scriptDb.sql"
sqlplusOutputLog="/tmp/schema_${myPID}.log"

# Sleep time in seconds
maxSleepTime=300
loopSleepTime=5
countLoopSleetTime=0

nohup sqlplus -L @"${sqlFile}" "${sqlplusOutputLog}" 1>/dev/null 2>&1 &

while true
do
	if [ ${countLoopSleetTime} -ge ${maxSleepTime} ]
	then
		pid=`ps -ef | egrep "${sqlFile}" | awk '{print $2}'`
		kill -15 ${pid}
		break
	fi
	countLoopSleetTime=`expr ${countLoopSleetTime} + ${loopSleepTime}`
done

chk_err=`egrep -i 'ORA-|SP2-|TNS-|Usage' "${sqlplusOutputLog}" | wc -l`
if [ $chk_err -ne 0 ]
then
	mailx -s "USER Stats gather failed on instance xyz on host $a" $PSDBA < "${sqlplusOutputLog}"
	exit 0
fi

Code:
cat scriptDb.sql
############
SET VERIFY OFF
SET TIMING ON

WHENEVER SQLERROR EXIT SQL.SQLCODE

spool &1

CONNECT system/system

show user
select instance_name from v$instance;
select TO_CHAR(sysdate, 'YYYYMMDD HH24:MI:SS') from dual;

exec dbms_stats.GATHER_SCHEMA_STATS (ownname=>'USER', block_sample=>true, granularity=>'AUTO', options=>'GATHER', estimate_percent=>SYS.DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt=>'FOR ALL COLUMNS SIZE auto', degree=>null, cascade=>SYS.DBMS_STATS.AUTO_CASCADE, no_invalidate=>SYS.DBMS_STATS.AUTO_INVALIDATE,forc e=>true);

spool off

EXIT

I hope it helps!

---------- Post updated at 15:15 ---------- Previous update was at 15:12 ----------

I forgot two things:
- To validate the log file inside the while loop:
chk_err=`egrep -i 'ORA-|SP2-|TNS-|Usage' "${sqlplusOutputLog}" | wc -l`
if [ $chk_err -ne 0 ]
then
break
fi
- Add the sleep inside the loop:
sleep ${loopSleepTime}

---------- Post updated at 15:17 ---------- Previous update was at 15:15 ----------

Also you can change the kill from 15 to 9:
Code:
kill -15 ${pid}
kill -9 ${pid}

 

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies

2. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

5. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies
LSNS(8) 						       System Administration							   LSNS(8)

NAME
lsns - list namespaces SYNOPSIS
lsns [options] [namespace] DESCRIPTION
lsns lists information about all the currently accessible namespaces or about the given namespace. The namespace identifier is an inode number. The default output is subject to change. So whenever possible, you should avoid using default outputs in your scripts. Always explicitly define expected columns by using the --output option together with a columns list in environments where a stable output is required. Note that lsns reads information directly from the /proc filesystem and for non-root users it may return incomplete information. The cur- rent /proc filesystem may be unshared and affected by a PID namespace (see unshare --mount-proc for more details). lsns is not able to see persistent namespaces without processes where the namespace instance is held by a bind mount to /proc/pid/ns/type. OPTIONS
-J, --json Use JSON output format. -l, --list Use list output format. -n, --noheadings Do not print a header line. -o, --output list Specify which output columns to print. Use --help to get a list of all supported columns. The default list of columns may be extended if list is specified in the format +list (e.g. lsns -o +PATH). -p, --task pid Display only the namespaces held by the process with this pid. -r, --raw Use the raw output format. -t, --type type Display the specified type of namespaces only. The supported types are mnt, net, ipc, user, pid, uts and cgroup. This option may be given more than once. -u, --notruncate Do not truncate text in columns. -V, --version Display version information and exit. -h, --help Display help text and exit. AUTHORS
Karel Zak <kzak@redhat.com> SEE ALSO
nsenter(1), unshare(1), clone(2), namespaces(7) AVAILABILITY
The lsns command is part of the util-linux package and is available from https://www.kernel.org/pub/linux/utils/util-linux/. util-linux December 2015 LSNS(8)
All times are GMT -4. The time now is 04:13 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy