How to perform action on newest line in log using tail?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to perform action on newest line in log using tail?
# 1  
Old 02-21-2010
Bug How to perform action on newest line in log using tail?

I don't quite know what I'm doing, so this simple script is proving a challenge.
Here is some pseudo code that doesn't work yet:

Code:
if tail -1 "WORKING.txt" >/dev/null | egrep "^NMBR=*" > /dev/null
    then
curl -k 'http://www.myserver.com/log.cgi?input=$?'
echo "hi there"
 fi


Purpose: Continuously monitor file "WORKING.txt" and check each new line as it is appended for lines that begin "NMBR=(number)" then take the value of the line and send it via curl to my web server as a variable.

Please point me in the right direction! Thanks

Last edited by pludi; 02-22-2010 at 05:27 AM.. Reason: code tags, please...
# 2  
Old 02-21-2010
Try:


Code:
val=`awk -F= '/NMBR/ { _s=$NF; }END { print _s;}' < WORKING.txt`
if [ $val -gt 0 ]
then
curl -k "http://www.myserver.com/log.cgi?input=$val"
fi

# 3  
Old 02-22-2010
Thanks!

That does work, and it's more elegant that my tail solution... BUT it doesn't continuously monitor the log. I would have to put it inside of a while loop and have it sleep. I like tail because it only updates when the file has been modified, rather than every second which is what I would have to do with while.
# 4  
Old 02-22-2010
Wrench

The problem is that more than 1 line could have been added while your script slept Smilie
The best is to perform (Pseudo-code) :
line count (wc -l), calc the difference with previous count, tail the difference from your file, set your previous-count-variable to the new count, sleep, loop.
Code:
OLD=0
while true
do
    COUNT=$(wc -l < $FILE)
    DIFF=$((COUNT-OLD))
    if [ $DIFF -gt 0 ]
    then
        tail -n $DIFF $FILE
        OLD=$COUNT
    elif [ $DIFF -lt 0 ] # Can happen (logrotate...)
        OLD=0
        continue
    fi
    sleep 1
done

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk script to perform an action similar to vlookup between two csv files in UNIX

Hi, I am new to awk/unix and am trying to put together an awk script to perform an action similar to vlookup between the two csv files. Here are the contents of the two files: File 1: Date,ParentID,Number,Area,Volume,Dimensions 2014-01-01,ABC,247,83430.33,857.84,8110.76... (9 Replies)
Discussion started by: Prit Siv
9 Replies

2. Shell Programming and Scripting

Perform an action if certain text exist in output (PERL)

Hello, I'm attempting to write a tool that checks an IP address for existing PTR records then if there are no PTR records does a ping to see if it response. Then if there is no response, it should print a message saying This is what I have so far. #!/usr/bin/perl $nxdomain =... (4 Replies)
Discussion started by: spartan22
4 Replies

3. Shell Programming and Scripting

Script to monitor for new file with ext .err and size > 0 bytes and perform a action or command

Hi All, I need to create a script to monitor a dir for new files with ext .err and also it should b a non empty files. and perform a action or command . We have a new ETL application that runs on a linux server, every times a etl fails it creates a .err file or updates the existing .err... (4 Replies)
Discussion started by: MAKHAN
4 Replies

4. Shell Programming and Scripting

How to access files from different directories and to perform search action in those files?

Hi, I want to access files from different directories (for example: /home/dir1/file1 , /home/dir2/file2 ...) Like this i have to access these files(file1, file2...). (3 Replies)
Discussion started by: bangarukannan
3 Replies

5. Shell Programming and Scripting

shell script - search a file and perform some action

hi, i have a service on unix platform, it will generate traces in a particular folder i want to check using shell script if traces exist, then perform some action else continue to be in loop. filename is service.tra can you please help? thanks (4 Replies)
Discussion started by: gauravah
4 Replies

6. Shell Programming and Scripting

create dir in main &subdirs,perform action

Hi, I have one dir which has N subdirs.For ex: /home/user/Project_Src /home/user/Project_Src/Dir_A /home/user/Project_Src/Dir_A/subdir/sub_dir2 /home/user/Project_Src/Dir_A/subdir/sub_dir3 /home/user/Project_Src/Dir_B /home/user/Project_Src/Dir_B/Build i want to create a folder with... (2 Replies)
Discussion started by: dragon.1431
2 Replies

7. Shell Programming and Scripting

Need help in searching 2 files for strings then perform an action

I have 2 files. I basically want to search both of them to see if the 1st column ($1) matches and if it matches then check to see if the 2nd column ($2) matches, then execute some code showing the results of the matches. File 1: AAA 123 misc blah BBB 456 CCC 789 File 2: ... (2 Replies)
Discussion started by: streetfighter2
2 Replies

8. Shell Programming and Scripting

perform a check based on number of @ in a log line

Hello, I am intending to perform a check based on number of "@" , present in a line in a log file . The idea is basically to perform a check on cc or bcc sender, based on an email log, which shows all the for email address. Say if the number of @ is more than 30, I will consider it as a mass... (12 Replies)
Discussion started by: fed.linuxgossip
12 Replies

9. Shell Programming and Scripting

Perform action file name written to the pipe

Hello, I have a script that monitors files uploaded via ftp. After a successful upload, the file name is written to the pipe. There is another program that reads this pipe and allows automatically run any program or script ( say test.sh ) to process the newly uploaded file. cat test.sh... (2 Replies)
Discussion started by: fed.linuxgossip
2 Replies
Login or Register to Ask a Question