Use of expr to calc differenc ein to epoch values


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Use of expr to calc differenc ein to epoch values
# 8  
Old 05-02-2018
For some reason the INSERT_TIME value is not being picked up before the rest of the script.

Code:
while IFS=, read -r INSTANCE SESS_COUNT INSERT_TIME

do

DATE_DIFF=`expr ${CHECK_DATE_1} - ${INSERT_TIME}`

if [[ ${DATE_DIFF} -gt 69000 && ${DATE_DIFF} -lt 100000 ]]
then
echo Critical Alert: $DATE_DIFF

...

---------- Post updated at 11:56 AM ---------- Previous update was at 11:08 AM ----------

Hi yes, I did set -x

Code:
#!/bin/bash  -x

The out put is now:

Code:
++ date +%s
+ CHECK_DATE_1=1525258379
+ FILE1=/tmp/longrunmon.out
+ IFS=,
+ read -r INSTANCE SESS_COUNT INSERT_TIME
++ expr 1525258379 -
expr: syntax error
+ DATE_DIFF=


For some reason the INSERT_TIME is not being read in this script:

Code:
#!/bin/bash  -x

CHECK_DATE_1=`date +%s`
FILE1=/tmp/longrunmon.out

while IFS=, read -r INSTANCE SESS_COUNT INSERT_TIME

DATE_DIFF=`expr ${CHECK_DATE_1} - ${INSERT_TIME}`

#echo instance: $INSTANCE
#echo session_count: $SESS_COUNT
#echo insert_time: $INSERT_TIME
#echo date_diff: $DATE_DIFF


do

if [[ ${DATE_DIFF} -gt 69000 && ${DATE_DIFF} -lt 100000 ]]
then
echo Critical Alert: $DATE_DIFF

elif [[ ${DATE_DIFF} -lt 600 ]]
then
echo Major Alert: $DATE_DIFF

fi

done < ${FILE1}


Last edited by rbatte1; 05-02-2018 at 08:10 AM.. Reason: Added CODE tags for output
# 9  
Old 05-02-2018
Show the (representatively curtailed) contents of /tmp/longrunmon.out.
# 10  
Old 05-02-2018
Code:
lit-dbracm01-p002:/home/oracle>cat /tmp/longrunmon.out

testinst,10,1525186184

Moderator's Comments:
Mod Comment Seriously: Please use CODE tags - for code AND data - as required by forum rules!

Last edited by RudiC; 05-02-2018 at 09:10 AM.. Reason: Added CODE tags.
# 11  
Old 05-02-2018
Is that an empty first line in your input? (see how IMPORTANT correct tagging is?)
# 12  
Old 05-02-2018
oh yes, you're right!
thank you so much :-)

---------- Post updated at 04:08 PM ---------- Previous update was at 01:21 PM ----------

Actually I have one more bug:


Any idea why we see the same DIFF_DATE syntax error in expr for this section:

Code:
while IFS=, read -r INSTANCE SESS_COUNT INSERT_TIME

DATE_DIFF=`expr ${CHECK_DATE_1} - ${INSERT_TIME}`

do

if  [[ ${SESS_COUNT} -eq 0 ]]
then
echo Send Normal Alert

elif [[ ${DATE_DIFF} -gt 300 && ${DATE_DIFF} -lt 600 ]]
then
echo Critical Alert: ${DATE_DIFF}

elif [[ ${DATE_DIFF} -gt 600 ]]
then
echo Major Alert: ${DATE_DIFF} ${INSTANCE}

fi
done < ${FILE1}


Code:
+ IFS=,
+ read -r INSTANCE SESS_COUNT INSERT_TIME
++ expr 1525273451 -
expr: syntax error
+ DATE_DIFF=


It seems to another read of the file at the end of the script even though there are no extra lines before the data or after the data in the file:

Code:
lit-dbracm01-p002:/home/oracle>cat /tmp/longrunmon.out
testinst,0,1525186184
testinst-2,0,1525186184


Last edited by jonnyd; 05-02-2018 at 12:29 PM..
# 13  
Old 05-02-2018
please used code tags as noted in post11.
It looks like you still have a misconfigured file you're trying to read...
# 14  
Old 05-02-2018
Im not sure what you mean by correct tagging.

My files seems good enough. no empty line anywhere.

Code:
$:/home/oracle>cat /tmp/longrunmon.out
testinst,10,1525186184
testinst-2,10,1525186184
$:/home/oracle>

Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

date calc

Hi, I need subtract two date values (which are in day of the year format) and the output would give the remaining days. using the command date +"%j" i would get today's 'day of the year' i.e., > date +"%j" 256 Next, i need to take input of a previous date in the format 09/05/2012 and then... (4 Replies)
Discussion started by: sam_bd
4 Replies

2. Shell Programming and Scripting

Calc max of a column

In C that was easy with a for and if. Iam trying to learn a litle more in bash. Example Ronaldo:5800 Figo:4000 Rafael:2321 Kaka:1230 I want the max of the $2 and the output will be: The max value is 5800 from Ronaldo. How can i do this in shell? Thanks for all, folks. (11 Replies)
Discussion started by: rafazz
11 Replies

3. Shell Programming and Scripting

test expr VS [ expr ]

What is the difference between test expr VS . For example : if test 5 -eq 6 echo "Wrong" and if echo "Wrong" bot will give the same output as Wrong. Now, what is the difference between these two? though they are producing the same result why we need two? Any answer will be... (2 Replies)
Discussion started by: ashok.g
2 Replies

4. UNIX for Dummies Questions & Answers

Differenc between ps -ef and top

First of all i really thankful to all those people who have created this site. unix.com rocks man!! I am bit confused about the two commands which are 'top' and 'ps -ef'.:confused: My requirement is that i want to monitor the CPU usage of Operating system and if the CPU usage is more than 90%... (2 Replies)
Discussion started by: Amey Joshi
2 Replies

5. Shell Programming and Scripting

Differenc between print and echo

can anyone explain me what is the difference between echo and print in shell programming? (3 Replies)
Discussion started by: chandhar
3 Replies
Login or Register to Ask a Question