Comparing and Evaluating


 
Thread Tools Search this Thread
# 1  
Comparing and Evaluating

Hi Guys,

Good day ULF Smilie I hope you can help me again with my problem. I have a file which looks like this:
Code:
Command was launched from partition 0.


------------------------------------------------
Executing command in server server3
Dec 18 21:31:12 AHM04 nseventmgr[9020]: EVENT-SET: event(102) additionalText(7/pmain)
Dec 18 21:31:13 AHM04 nseventmgr[9041]: EVENT-CLEAR: event(102) additionalText(7/pmain)
Dec 18 21:32:15 AHM04 nseventmgr[9636]: EVENT-SET: event(102) additionalText(7/pmain)
Dec 18 21:32:16 AHM04 nseventmgr[9697]: EVENT-CLEAR: event(102) additionalText(7/pmain)


------------------------------------------------
Executing command in server backup-server


------------------------------------------------
Executing command in server server8
Dec 17 22:38:24 AHM09 nseventmgr[19518]: EVENT-SET: event(121) additionalText(-1344)
Dec 17 22:38:34 AHM09 nseventmgr[19609]: EVENT-CLEAR: event(121) additionalText(-1344)
Dec 17 23:02:52 AHM09 nseventmgr[2373]: EVENT-SET: event(121) additionalText(-1344)
Dec 17 23:03:04 AHM09 nseventmgr[2506]: EVENT-CLEAR: event(121) additionalText(-1344)
Dec 17 23:07:30 AHM09 nseventmgr[5034]: EVENT-SET: event(121) additionalText(-1344)


------------------------------------------------
Executing command in server server1


------------------------------------------------
Executing command in server server9
Dec 18 12:26:15 AHM10 nseventmgr[1822]: EVENT-SET: event(102) additionalText(6/pmain)
Dec 18 12:26:16 AHM10 nseventmgr[1843]: EVENT-CLEAR: event(102) additionalText(6/pmain)
Dec 18 12:26:23 AHM10 nseventmgr[1928]: EVENT-SET: event(102) additionalText(6/pmain)
Dec 18 12:26:24 AHM10 nseventmgr[1989]: EVENT-CLEAR: event(102) additionalText(6/pmain)

As you can see, the file contains alarms per server, wherein:
if EVENT-SET - means an alarm has occurred
if EVENT-CLEAR - means alarm has been cleared

What I want in each server, the script/parser will evaluate each line in the file then if EVENT-SET is greater that EVENT-CLEAR meaning there's an alarm and we must check it, but if it is equal status is normal. Also, it will return an output something like this:
Code:
EVENT-SET in server1, please check
EVENT-SET in backup server, please check

Thanks,
rymnd_12345

---------- Post updated at 02:32 AM ---------- Previous update was at 01:44 AM ----------

FYI on my simple code:
Code:
#!/usr/bin/sh

awk '
/Executing command in server/ {curr_server=$NF}
NF==8 { gsub (":","",$6); if ($6~/EVENT-SET/) { num_set=num_set+1 }}
END {printf ("total number of EVENT-SET is %s in %s\n", num_set, curr_server)}' /tmp/ALARMS_Output.debug

But the problem is it just gives the total number of lines with EVENT-SET in all servers and returns only the name of the last server, see output below:
Code:
total number of EVENT-SET is 119 in server7

please advice...
rymnd_12345
# 2  
Use an associative array:
Code:
/Executing command in server/ {curr_server=$NF}
NF==8 { gsub (":","",$6); if ($6~/EVENT-SET/) { num_set[curr_server]++ }}
END { for (i in num_set) { printf ("total number of EVENT-SET is %s in %s\n", num_set[i], i) }}

# 3  
Hi CarloM,

Thanks so much!


br,
rymnd_12345

---------- Post updated at 07:21 AM ---------- Previous update was at 04:43 AM ----------

Hi CarloM,

How can I insert in the code to test in each server if EVENT-SET is greater than EVENT-CLEAR, then that's the time it will only prompt the user that an alarm has occurred else if they are equal status is ok.

Please advice, I've tried already several times but still I can't get the output that I want. Smilie


br,
rymnd_12345
# 4  
Something like:
Code:
/Executing command in server/ {
   curr_server=$NF
}
$6~/EVENT-SET/ {
   num_set[curr_server]++;
}
$6~/EVENT-CLEAR/ {
   num_clear[curr_server]++;
}
END {
   for (i in num_set) {
      if (num_set[i] > num_clear[i]) {
         printf ("%d events not cleared on %s\n", num_set[i]-num_clear[i], i);
      }
   }
}

# 5  
Hi CarloM,

Finally! Yeah, thank you so much... I hope I can also help soon Smilie


br,
rymnd_12345
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Problem evaluating condition

First, given this bit of code (line numbers included for reference: 59 get_all_db () { 60 #echo getting all db 61 dblist=`egrep -i "product/12" /etc/oratab |grep -v "listener"|\ 62 awk -F\: '{print $1}'|sort` 63 echo list is $dblist 64 echo 65 echo 66 echo "INSTANCE_NAME ... (15 Replies)
Discussion started by: edstevens
15 Replies

2. Shell Programming and Scripting

Evaluating a variable

Does anyone know of a way to force a variable name held in another variable to return the value of the first variable? Best if I give an example, that does not work: /usr/local/bin >cat mike.sh NUM1ref=16 NUM2ref=32 echo "==============" for VAR in NUM1 NUM2 do XXXX=${VAR}ref echo $XXXX... (4 Replies)
Discussion started by: mikejordan
4 Replies

3. Shell Programming and Scripting

if condition not evaluating as expected

Hi all, Thanks in advance for your time. I have a data file like this: 1 7.465753425 2 8.980821918 1 1.717808219 1 6.550684932 0 5.432876712 I wish to write a bash script to check both columns and output a 1 if col1==1 AND col2<3. Otherwise I want to output a 0. In the above... (5 Replies)
Discussion started by: jem8271
5 Replies

4. Shell Programming and Scripting

$$# is evaluating to 1 when no value

I have the following in my makefile: RESULT=`../${TOOLS_ROOT_PATH}/ext_tools.sh 11`; \ set $$RESULT > tMp; \ rm tMp; \ if ; then \ echo copying external-local tool: $< \($$*\); \ mkdir -p ${EXTERNAL_LOCAL_BIN_DIR}/$<; \ cp -f... (4 Replies)
Discussion started by: jake_ryan
4 Replies

5. UNIX for Dummies Questions & Answers

evaluating date +%m

how do i evaluate the value of date if ( $(date +%m) > 8 ) then FY_STAMP=FY$(echo $(($(date +%Y) + 1)) | cut -c3-4) else FY_STAMP=FY$(date +%y) fi i want this to make the FY_STAMP increment by 1 if the month is september and up. but cant seem to make it work (3 Replies)
Discussion started by: rsf01
3 Replies

6. Shell Programming and Scripting

* character evaluating too soon - Help!

I have a user defined configuration file, which could contain the following type of entries: directory_001=/a/directory/structure pattern_001=fred* pattern_002=* I have a script which reads the file generically which will loop round loop 1 genvar=”directory” iteration=”001” ... (11 Replies)
Discussion started by: Bab00shka
11 Replies

7. UNIX for Dummies Questions & Answers

evaluating params

Hi all, I ve a script like.... TBL=employee sql=`cat abhi.sql` \\ abhi.sql contains ------- select a from $TBL echo $TBL echo $sql SQL=`echo $sql` echo $SQL now i want SQL as select a from employee and as select a from $TBL How can I achieve this? Help appriciated (3 Replies)
Discussion started by: abzi
3 Replies

8. UNIX for Dummies Questions & Answers

evaluating variables

Hi I have a script in which I have several variables var1 var2 var3 var4 etc...... and field1 field2 field3 field4 etc....... The script similar to this: (6 Replies)
Discussion started by: Bab00shka
6 Replies

9. UNIX for Advanced & Expert Users

evaluating core files

Does anyone know any tools or how to really get something out of a core file. I can use strings and look for certain things like out of memory. I am trying to use adb but I can't make heads or tails from it. I guess it is my lack of know how with the adb/mdb debugger. anything would... (3 Replies)
Discussion started by: Gary Dunn
3 Replies

10. UNIX for Dummies Questions & Answers

evaluating for a number

I apologize for the simple question but can someone please help me with how to evaluate a number? I will be reading in a file and if a number is >= 100000000, I will do something, if not, I will exit the if statement. Thanks in advance (1 Reply)
Discussion started by: hedrict
1 Replies

Featured Tech Videos