Help needed with script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help needed with script.
# 1  
Old 05-14-2010
Help needed with script.

Hi,

Basically I am looking to search for a certain string within a log file. If this string is present then I want to send an output file with the results of this string in it to me by email. If the output file has 0 as it's result the we email a successful backup. Script is below.

Code:
#!/bin/bash
LOG_FILE=/var/adm/messages
export LOG_FILE
OUTPUT_FILE=/tmp/logerrors
export OUTPUT_FILE
cat $LOG_FILE|grep -i error | wc -l >> $OUTPUT_FILE
if [ test $OUTPUT_FILE -gt 0 ];
then
        echo "Subject: BACKUP FAILED" >> $OUTPUT_FILE
   mailx  -s "BACKUP FAILED" johndoe@test.com < $OUTPUT_FILE
else
  mailx  -s "Sucessful RMAN backup" johndoe@test.com
fi



Thanks for your help.Smilie

Sparcman

Last edited by pludi; 05-14-2010 at 07:58 AM.. Reason: code tags are applied on the text between them, not between 2 different tag sets
# 2  
Old 05-14-2010
1) What do you mean by "$OUTPUT_FILE -gt 0" ?
In this way, you are just comparing the value of the variable ( i.e the path of the filename) with zero. which is wrong.
I guess, you want to compare the size of the file.

2) ">>" means you are appending to the file instead creating new file. if there is already existing file with that name, your count may go wrong.

3) [ ] itself used as a test operator. so no need of explicitly use of mentioning test keyword.

4) There is one useless use of cat too.

Try something like:

Code:
LOG_FILE=/var/adm/messages
export LOG_FILE
OUTPUT_FILE=/tmp/logerrors
export OUTPUT_FILE
grep -i error $LOG_FILE| wc -l > $OUTPUT_FILE
if [ -s "$OUTPUT_FILE" ];
then
        echo "Subject: BACKUP FAILED" >> $OUTPUT_FILE
        mailx  -s "BACKUP FAILED" johndoe@test.com < $OUTPUT_FILE
else
        mailx  -s "Sucessful RMAN backup" johndoe@test.com
fi


Last edited by clx; 05-14-2010 at 08:30 AM.. Reason: some formating
This User Gave Thanks to clx For This Post:
# 3  
Old 05-14-2010
MySQL

Thanks Anchal Khare.

That script is now almost doing what I need. Sorry - I should have explained it better. If the value in the output file is 0 then the backup will have been successful as there are no errors. Any value greater than that signifies an error has occured and I need to investigate.

I have recieved a mail which had a value of 0 in it and "Backup Failed" as the subject.

Basically what is to test the value in the output file and if it is equal to 0 then the backup was successful. Anything more than 0 and the backup failed.

grep -i error $LOG_FILE| wc -l > $OUTPUT_FILE
-bash-3.00$ cat $OUTPUT_FILE
0
Subject: BACKUP FAILED ----> This needs to be a successful backup
as there are no errors. Anything
greater than 0 is a backup failure.
Thanks for looking into this for me.

Sparcman.Smilie
# 4  
Old 05-14-2010
another thing you can do is to make the mail more useful is use a "here" document and
insert things using $(command) or `command` like so:

Code:
mailx  -s "BACKUP FAILED" johndoe@test.com <<EOF

we got blah blah blah
================
$(date)
`hostname`
disk usage:
`df`

output file is:
$(cat $OUTFILE)


EOF

This User Gave Thanks to bigearsbilly For This Post:
# 5  
Old 05-14-2010
Ok, If that is the case, then
Code:
if [ "$(cat $OUTPUT_FILE)" -eq "0" ]; then
 echo 'success'
else
 echo 'failed'
fi

Code:
LOG_FILE=/var/adm/messages
export LOG_FILE
OUTPUT_FILE=/tmp/logerrors
export OUTPUT_FILE
grep -i error $LOG_FILE| wc -l > $OUTPUT_FILE
if [ "$(cat $OUTPUT_FILE)" -eq "0" ];then
        mailx  -s "Sucessful RMAN backup" johndoe@test.com
else
        echo "Subject: BACKUP FAILED" >> $OUTPUT_FILE
        mailx  -s "BACKUP FAILED" johndoe@test.com < $OUTPUT_FILE
fi


even you don't need the output file.
Code:
COUNT=$(grep -i error $LOG_FILE| wc -l )

Now, Do all the comparison based on this variable.
This User Gave Thanks to clx For This Post:
# 6  
Old 05-14-2010
MySQL

Thanks Anchal Khare. Thats working now! Your help was much appreciated.

SparcmanSmilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Help needed for a script

TAG flow Between SDR and DELTA SDR is the Source table. Delta is the target table having one staging table and one Main table. Tags flows between SDR and Delta through ER gateway. From SDR (SDR.CUSTOMER_PRODUCT and SDR.CUSTOMER_PRODUCT_RELATIONSHIP) the Tags flows to ER... (2 Replies)
Discussion started by: patitapaban
2 Replies

2. Shell Programming and Scripting

Help Needed on Script

Hi team, I am looking to execute some command through xargs. $cat testfile | grep myloc alias myloc='cd /export/nfs-1sv-23/' I am trying to execute that alias as soon as i cat and grep ? I tried with $cat testfile | grep myloc | xargs --> no luck ... Can some one assist me with... (6 Replies)
Discussion started by: itsme488
6 Replies

3. Shell Programming and Scripting

Help needed for script

Hi, I have a big list like this --> 3285 3289 328D 3291 3295 3299 329D 32A1 I need to make it like --> 3285|3289|328D|3291|3295|3299|329D|32A1 Please suggest. This is Linux OS. (8 Replies)
Discussion started by: solaris_1977
8 Replies

4. UNIX for Dummies Questions & Answers

help in script needed

Hi, I am developing a script for writing out the failed jobs in file, 1)First step i need to create an empty file Status with today's date. 2)After that i need to execute the below command: dsjob -server servername -user uname -password pwd -ljobs projectname This will listout all... (5 Replies)
Discussion started by: pandeesh
5 Replies

5. Shell Programming and Scripting

Expect script help needed- script failing if router unavailable

Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK. However, sometimes an... (3 Replies)
Discussion started by: mrkz1974
3 Replies

6. Shell Programming and Scripting

Help Needed in Sh script

hi, Im trying to select from a sql using shell script and once i get count i need to add the count to the subject line and send mail to every1.. ex : Select count(*) from emp; In Shell script echo $PASSWORD|$ORACLE_HOME/bin/sqlplus $USERID@$DBNAME @$SCRIPT_DIR/emp_count.sql... (1 Reply)
Discussion started by: jkumsi
1 Replies

7. Shell Programming and Scripting

help needed for a script!!

Hi!! Im new to shell scripting. I have an important assignment to complete in my company tomorrow. Please help me. I have to write an interactive script which does the following thing: There is a file named ""rules"in a folder say /home/f1/ . This file contains text in the form: 123 345... (5 Replies)
Discussion started by: rahul195
5 Replies

8. UNIX and Linux Applications

script needed

hi i am new to linux world please help me,i have two files in diff location i need to compare both and i need to see difference b/w them ex /media/txt (file1) xxxxxx xxxxxx xxxxx xxxxxx xxxxxx /media/rev/ (file2) rev is a folder which contains some files so i need to compare the files in... (3 Replies)
Discussion started by: revenna
3 Replies

9. Shell Programming and Scripting

Script help needed

I have a code given below... ERROR=`grep "Job Status" ${LOG_FILE}` ERROR=${ERROR##*\(} ERROR=${ERROR%%\)*} if then echo "The job completed successfully" EXIT_STATUS=0 else echo "The job failed" EXIT_STATUS=1 fi can anybody tell me what is ERROR=${ERROR##*\(}... (1 Reply)
Discussion started by: Sagarddd
1 Replies

10. Shell Programming and Scripting

Script needed

Hi I am looking for the script which can move 1month old data from a TXT file.actully in this file data is appended on daily basis.pleasehalp me out. Thanks in advance (3 Replies)
Discussion started by: vpandey
3 Replies
Login or Register to Ask a Question