Ok. I need some help with a script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Ok. I need some help with a script.
# 1  
Old 05-28-2008
Ok. I need some help with a script.

Ok..im stuck and need some help creating a script that I am trying to implement on one of our SPARC servers. Here is what I am trying to do:

Basically, I have a file that I need to grep through every 15-30 minutes and look for certain errors. When these errors are found, a email is fired off to a email distribution list.

1.) I cannot touch the file at all. Meaning, I have to leave the original alone. Does not mean I can't copy it though.

So, I was trying to find out how I can make this script only find any new errors that happen within a specified time frame. For example, if I setup the script on a cronjob to run every 30 minutes, how can I make so if the script fires off at 3pm, it will find any errors that have occured since 2:30pm?

So I have been trying to think about how to do this.

Does anyone have suggestions?

One other thing.
When I grep through the file, looking for my errors, the contents are on 3 seperate lines.
The first line is the timestamp.
Second line is the error.
Third line is the data about the error.

How can I grab all three lines?

Really appreciate all the help.

TCG
# 2  
Old 05-29-2008
Without more specifics, it's hard to give a good answer.

If each line in the file is unique, you can remember the last line you saw, and only read lines after that line. For example, in a log file where every line has a date and a time stamp, this is trivially true. Or, following your own suggestion, you can copy the file and later run diff or something to remove the lines you have already copied (and thus already processed). This sounds rather heavy, though. Finally, if this is a log file, it's probably being rotated nightly or weekly, or at least monthly; so you should perhaps at least take care to notice when the file shrinks; or maybe you could even try to piggyback your grepping on the process which does the rotation, if you can (probably requires root access).

Grabbing more than one line again depends heavily on file format etc, but if the middle one of those lines is the one you grep for, a simple context argument grep -C 1 pattern file will get you one line before, and one line after the match. Some versions of grep also have -B and -A options to control how many lines before and after the match to include, respectively. If you don't have those options, or need more elaborate processing, a sed or awk script is probably the way to go.
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. 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

2. 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

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

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

5. 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
Login or Register to Ask a Question