Need help for this monitor log script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help for this monitor log script
# 1  
Old 11-10-2009
Need help for this monitor log script

this is the format of the log file in my system
Code:
xxxxx_xxx_xxxx_xxxxx_09_10_2009_170457.log
xxxx_xxx_2_0_09_10_2009_163834.log
xxx_xxxxxxxxx_25_10_2009_045020.log
xxx_xxxxxxx_08_11_2009_055728.log

the path of this logs file in on for example
/dellxmax/application/log

what i want to do is
make script
give me this output
----------------------------------------------------------------------
File Name | status | date
----------------------------------------------------------------------
xxxxx_xxx_xxxx_xxxxx_09_10_2009_170457.log | success | 22_10_2009
xxxx_xxx_2_0_09_10_2009_163834.log | success | 22_10_2009
xxx_xxxxxxxxx_25_10_2009_045020.log | success | 22_10_2009
xxx_xxxxxxx_08_11_2009_055728.log | success | 22_10_2009


in this report i want the arrange ascending (the last file modified is the last one in this report)


for the status i want this script search for Successfully in the file
founded give me successfully
if it doesn't give me fail

thanks in advance
# 2  
Old 11-10-2009
Java

try this let me know if it helps, this is assuming you have the "stat" installed

I did this on a CentOS machine. If I understood your post this is what you are looking for just need to tweak it if needed but now you might have the idea.

Code:
#!/bin/bash

counta=1

for file in /dellxmax/application/log/*
do
      DC=$(stat -c %y $file | awk {' print $1'})
        STATUSLOG=$(grep 'success' $file)

        if [ "$?" -eq 0 ]
        then
                ST="success";
        else
                ST="failed";
        fi

        echo "$counta) $file | $ST | $DC";
        counta=`expr $counta + 1`;
done

let me know how it goes
# 3  
Old 11-11-2009
this is the output of the script
Code:
1016) /dellxmax/application/log/xxxxxx_xxxxxx_17_06_2009_041723.log | success | 2009-11-11
1017) /dellxmax/application/log/xxxxxx_xxxxxx_18_09_2009_150922.log | success | 2009-11-11
1018) /dellxmax/application/log/xxxxxx_xxxxxx_23_06_2009_022126.log | success | 2009-11-11
1019) /dellxmax/application/log/xxxxxx_xxxxxx_23_07_2009_030918.log | success | 2009-11-11
1020) /dellxmax/application/log/xxxxxx_xxxxxx_26_08_2009_211545.log | success | 2009-11-11
1021) /dellxmax/application/log/xxxxxx_xxxxxx_28_09_2009_090610.log | success | 2009-11-11
1022) /dellxmax/application/log/xxxxxx_xxxxxx_29_06_2009_034650.log | success | 2009-11-11

1- i appreciate your help very very thank you
2- i need some edit for the output
  • all of this log for the same job run if dufferient days i want to replace 2009-11-11 with the date of the log for example
Code:
1022) /dellxmax/application/log/xxxxxx_xxxxxx_29_06_2009_034650.log | success | 29.06.2009:034650

  • when you run this command ls -ltr all file sorted
    -l long list format
    -t Sorts by time stamp (latest first)
    -r Reverses the order of sort

    So when I do this command the last created depending on time stamp will be the last file in the list
    I want this script have the same concept of the command
  • the script search for successfully else put failed
  • i want to enter another condition and the first condition also running the secand condition is search for dellxmax in the file found write done in the status not found write ndone in the status
totally i would like to thanks you very much for this script
# 4  
Old 11-11-2009
try this:

Code:
#!/bin/bash

counta=1
CMD="ls -tr /dellxmax/application/log/"

for file in `$CMD`
do
      DC=$(echo $file | awk '{ print substr( $0, length($0) - 20, length($0) ) }' | sed 's/.log//g' | sed 's/_/./g')
        STATUSLOG=$(grep 'success' $file)

        if [ "$?" -eq 0 ]
        then
                ST="success";
        else
                ST="failed";
        fi

        echo "$counta) $file | $ST | $DC";
        counta=`expr $counta + 1`;
done

your log files has to be consistent since this will grab the last 21 characters from the log file name, btw, if you want to remove the counta you could and you won't get the line number on each output.

if you need further editing to the script, try doing it yourself and post it here and I will do my best to help you out

let me know if this helped
# 5  
Old 11-11-2009
Code:
#!/bin/bash
set +x
counta=1
TODAY=`date +%d_%m_%Y_`
CMD=`ls -1tr /dellxmax/application/log/*${TODAY}*.log`
for file in $CMD
do
      DC=$(echo $file | awk '{ print substr( $0, length($0) - 20, length($0) ) }' | sed 's/.log//g' | sed 's/_/./g')
        STATUSLOG=$(egrep "success|fine" $file)
        if [ "$?" -eq 0 ]
        then
                ST="success";
        else
                ST="failed";
        fi
        echo "$counta) $file | $ST | $DC";
        counta=`expr $counta + 1`;
done

very thanks for you the script is run and i add to make this script run for today day only
to prevent the previous log file

very thanks for you
thanks last request
i will going to learn shell script
please provide me to good manual for beginner
for shell script & awk % sed
# 6  
Old 11-11-2009
Glad to help.

A book I have "kind of old (2003)" but good, is the "Unix Shell Programming, third edition" Stephen G. Kochan and Patrick Wood

But online you will find many tutorials. You can also browse through unix.com and look at people's problems and see the developed solution and try to analise it.

See you around.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to monitor /var/log/messages

Hello All, I want to write a script to monitor my product logs from /var/log/messages and send notifications without using "tail -f" command.Please suggest alternatives and any other tools for monitoring and alerting. Thank You (1 Reply)
Discussion started by: Cva2568
1 Replies

2. Shell Programming and Scripting

Monitor log when Process comes UP

Hi, I need to grep a pattern in the log file of a process and send a mail if pattern found.But I am not able to figure out how do I detect when the process comes UP,it is started several times a day and each time it is started I need to perform this action. Please suggest something. (3 Replies)
Discussion started by: vishal bhargava
3 Replies

3. Shell Programming and Scripting

Monitor log entries in log files with no Date format? - Efficient logcheck?

is there a way to efficiently monitor logfiles that do not have a date or time format? i have several logs on several different servers that need to be monitored. but i realized writing a script for this would be very complex and time consuming giving the variety of things i need to check for i.e.... (2 Replies)
Discussion started by: SkySmart
2 Replies

4. Shell Programming and Scripting

Monitor log file

Hi, I need to amend an existing ksh script so that it runs a process (stop weblogic) and in parallel needs to monitor a log file (startup.log) in the background for a certain string (e.g. unable to stop weblogic). If the string appears in the log i need to kill the stop weblogic process. ... (5 Replies)
Discussion started by: dholmaster
5 Replies

5. Shell Programming and Scripting

Script to monitor log file

Hi, Have written a script to monitor linux non standard log file based on line numbers, so each check store $otalinenum .. then in next check after 10 minutes it compre the current_total_line_num > last_total_line_num then it will parse the log file from last_total_line_num to... (0 Replies)
Discussion started by: Shirishlnx
0 Replies

6. HP-UX

Script to monitor /var/opt/resmon/log/event.log file

AM in need of some plugin/script that can monitor HP-UX file "/var/opt/resmon/log/event.log" . Have written a scrip in sh shell that is working fine for syslog.log and mail.log as having standard format, have interrogated that to Nagios and is working as I required . But same script failed to... (3 Replies)
Discussion started by: Shirishlnx
3 Replies

7. Homework & Coursework Questions

shell script that can create, monitor the log files and report the issues for matching pattern

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Write an automated shell program(s) that can create, monitor the log files and report the issues for matching... (0 Replies)
Discussion started by: itian2010
0 Replies

8. Shell Programming and Scripting

monitor log files

Hello, I want something like this tail -f /a/b/c/*.log | grep -i "STRING1|STRING2 " > a.txt I want to check all the log files in a particular directory then grep if any of the log files have "STRING1" and "STRING2" string and then have to send email to the group. Platform is HP-UX it... (8 Replies)
Discussion started by: RTY
8 Replies

9. Shell Programming and Scripting

Script to monitor the pattern in the log file

hi All, how to find a pattern in the log file & display the above and below line for example in the log file, i have many lines, whenever i search for "Category" it should display the above line with only few parameter like i want only the location name & department name Thu Jul 02 11:05:23... (2 Replies)
Discussion started by: rithick256
2 Replies

10. UNIX for Dummies Questions & Answers

Log monitor script

Hi All, I have a question and hope someone will have an answer to that. I'm looking for a way to monitor log files being generated on a windows machine for some specified string and if its occurrence is found, raise an alarm though email. The log file size keeps on increasing and after a... (2 Replies)
Discussion started by: er_ashu
2 Replies
Login or Register to Ask a Question