Grep Syslog


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep Syslog
# 1  
Old 07-18-2005
Grep Syslog

Hello,
I want to create a script that will grep syslog for an "expression" such as warning. I want it to repeat this script every 5 minutes and only use the last 5 minutes of the syslog in each scan . Can this be done?

Thanks
# 2  
Old 07-18-2005
So far i can grep the syslog and redirect my output to a tmp folder, from there I have another utility that will send flags to my monitoring engine. I have not figured out how to omit the portion of the syslog that has allready been grepped. I thought of the tail command but because I do not know how much data will be written to the log at anyone time, this will not do. Is there a way that grep can read the time stamp of the lines written in the log file, remember the last time stamp and start from that position the next time the script is run?
# 3  
Old 07-18-2005
why don't you 'cache' the total number of lines [nl] after the initial 'grep' and on the next iteration just get the lines from [nl] to the end of the file, caching a [nl].
# 4  
Old 07-18-2005
Quote:
Originally Posted by vgersh99
why don't you 'cache' the total number of lines [nl] after the initial 'grep' and on the next iteration just get the lines from [nl] to the end of the file, caching a [nl].

I appreciate your reply but what you have suggested is beyond me, I am really a UNIX baby and have been handed this project with out much UNIX training.

I am sure that [nl] means something but i do not know what that is. Sorry for my ignorance.
# 5  
Old 07-18-2005
'nl' is just a name of the variable holding the NumberofLines in a file. I've simply outlined the algorithm for ya.
# 6  
Old 07-18-2005
Code:
BEGIN {
  NL = 0
  getline NL <"loglog"
}
FNR<=NL { next }
/Warning/
END { print FNR > "loglog" }

The file "loglog" is used, per Vlad's suggestion, to keep track of
how many lines of syslog have already been scanned.

Save the code as "scanlog.awk" and run with

awk -f scanlog.awk syslog
# 7  
Old 07-18-2005
My thought is to use the grep -n Error /var/adm/syslog/syslog.log.
With this grep output I get the relative line number. Can I use the -n and have grep get data from the last line number. Can i have the line number write its value to a variable and have the script start grep at that number? If I sound confused or none of this makes sense, I apologize in advance
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

2. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

3. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

4. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

5. UNIX for Dummies Questions & Answers

Advanced grep'in... grep for data next to static element.

I have a directory I need to grep which consists of numbered sub directories. The sub directory names change daily. A file resides in this main directory that shows which sub directories are FULL backups or INCREMENTAL backups. My goal is to grep the directory for the word "full" and then... (2 Replies)
Discussion started by: SysAdm2
2 Replies

6. Shell Programming and Scripting

syslog grep/awk/sed display

What i am trying to do is pull all the "fail" and "error" from the HP-UX syslog except if it includes "sshd" or "ftpd" and IF the next line says "above message repeats NN time" display the next line. Got some of it working with someones help with sed but Im more familiare with awk. Trying... (4 Replies)
Discussion started by: Ikon
4 Replies

7. Shell Programming and Scripting

grep for certain files using a file as input to grep and then move

Hi All, I need to grep few files which has words like the below in the file name , which i want to put it in a file and and grep for the files which contain these names and move it to a new directory , full file name -C20091210.1000-20091210.1100_SMGBSC3:1000... (2 Replies)
Discussion started by: anita07
2 Replies

8. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

9. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

10. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies
Login or Register to Ask a Question