Hi all CentOS users,
I have writing shell script for check oracle processes in real time and alert with e-mail.
I read script like below
NUMBEROFPRO=/oracle/10.2.0/db_1/bin/sqlplus / as sysdba <<EOF1 |grep processes|awk '{print $2}' SELECT resource_name,current_utilization,limit_value FROM V$RESOURCE_LIMIT WHERE RESOURCE_NAME IN ('processes','sessions'); quit EOF1
if [ $NUMBEROFPRO > 150 ] then /bin/mail -s "Processes number bigger then 150 !!" myemailadres<<EOF Contact your system administrator. EOF fi
Script print value correctly on screen but NUMBEROFPRO have empty value in script.How can i take and print NUMBEROFPRO value from above query ?
Thanks for all.
On Jan 30, 2009, at 8:52, Ralph Angenendt wrote:
By putting `` or $( ) around the call.
You can also eliminate the grep altogether:
NUMBEROFPRO=/oracle/10.2.0/db_1/bin/sqlplus / as sysdba <<EOF1 | awk '/processes/ {print $2}' SELECT resource_name,current_utilization,limit_value FROM V\ $RESOURCE_LIMIT WHERE RESOURCE_NAME IN ('processes','sessions'); quit EOF1
Cheers, Alfred
Hi,
On Fri, Jan 30, 2009 at 08:40, Semih Gokalp semihgokalp@gmail.com wrote:
if [ $NUMBEROFPRO > 150 ]
This is wrong, should be [ $NUMBEROFPRO -gt 150 ] instead.
HTH, Filipe
On Fri, Jan 30, 2009 at 13:59, R P Herrold herrold@centos.org wrote:
or for those who are used to being burned: [ 0$NUMBEROFPRO -gt 150 ]
Still going to explode if $NUMBEROFPRO contains spaces. Putting in double quotes will not help you either, since it will complain about it not being numeric...
Doing math with the shell is always tricky, almost never robust...
Filipe
On Fri, 2009-01-30 at 15:56 -0500, Filipe Brandenburger wrote:
On Fri, Jan 30, 2009 at 13:59, R P Herrold herrold@centos.org wrote:
or for those who are used to being burned: [ 0$NUMBEROFPRO -gt 150 ]
Still going to explode if $NUMBEROFPRO contains spaces. Putting in double quotes will not help you either, since it will complain about it not being numeric...
That taught me long ago, if input was inconsistent, to check for non-numerics before doing math. Back then, it was the expr command (still available I think). Now it's some of those builtins accessed with ${} constructs. Expr is simpler, shorter to code and reliable.
Doing math with the shell is always tricky, almost never robust...
Filipe
<snip sig stuff>
Thanks for all reply.
it works with $()
Thanks again everbody.
2009/1/30 William L. Maltby CentOS4Bill@triad.rr.com:
On Fri, 2009-01-30 at 15:56 -0500, Filipe Brandenburger wrote:
On Fri, Jan 30, 2009 at 13:59, R P Herrold herrold@centos.org wrote:
or for those who are used to being burned: [ 0$NUMBEROFPRO -gt 150 ]
Still going to explode if $NUMBEROFPRO contains spaces. Putting in double quotes will not help you either, since it will complain about it not being numeric...
That taught me long ago, if input was inconsistent, to check for non-numerics before doing math. Back then, it was the expr command (still available I think). Now it's some of those builtins accessed with ${} constructs. Expr is simpler, shorter to code and reliable.
Doing math with the shell is always tricky, almost never robust...
Filipe
<snip sig stuff>
-- Bill