Script to read file size and send email only if size > 0.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script to read file size and send email only if size > 0.
# 1  
Old 04-28-2011
Script to read file size and send email only if size > 0.

Hi Experts,
I have a script like
Code:
 
$ORACLE_HOME/bin/sqlplus username/password # << ENDSQL
set pagesize 0 trim on feedback off verify off echo off newp none timing off
set serveroutput on
set heading off
spool Schemaerrtmp.txt
select ' TIMESTAMP                     COMPUTER NAME                        ERROR TEXT ' from dual;
select to_char(error_time,'MM-DD-YYYY.HH.MI.SS') ||'  ;  ' || trim(computer_name) || '  ;  '||trim(error_code)|| ' ; '|| trim(rpad(error_text,30)) from  ta_error_log where rownum <=1000 and error_time > sysdate -1;
spool off
ENDSQL
dt=`date|awk '{print $1}'`
sed '1,5 d' Schemaerrtmp.txt > Schemaerr.txt
cat Schemaerr.txt |mailx -s " SPEAR Error Log file!!!! " $MAIL_LIST

This script sends a message even if "Schemaerr.txt" file is empty/zero bytes.
Need to modify the above script so that it send message only if "Schemaerr.txt" size is > 0 or non-empty.

Please advice.

Thanks

Last edited by Scott; 04-28-2011 at 01:17 PM.. Reason: Please use code tags
# 2  
Old 04-28-2011
This old man test option is popular for if empty('/bin/[' is actually an link to /bin/test, for shells where it is not built in!)
Code:
if [ ! -s $msg_file ]
then
 . . .
fi

# 3  
Old 04-28-2011
Quote:
Originally Posted by welldone
Need to modify the above script so that it send message only if "Schemaerr.txt" size is > 0 or non-empty.

Please advice.

Thanks
Since the "-s" option of the test command tests "FILE exists and has a size greater than zero"

The answer is not "! -s" but rather "-s" to satisfy the OPs needs.

Code:
if [ -s Schemaerr.txt ] 
then 
    cat Schemaerr.txt | mailx -s " SPEAR Error Log File!!!! " $MAIL_LIST
fi

or you can abbreviate this as follows:
Code:
[ -s Schemaerr.txt ] && cat Schemaerr.txt | mailx -s " SPEAR Error Log File!!!! " $MAIL_LIST

# 4  
Old 04-28-2011
or can eliminate the UUOC:
Code:
[ -s Schemaerr.txt ] && mailx -s " SPEAR Error Log File!!!! " $MAIL_LIST < Schemaerr.txt

# 5  
Old 04-29-2011
Great point, cat *is useless here.
I totally missed the preferred redirect solution on that one.
# 6  
Old 04-29-2011
I call it cut-trivial-cases-off-early-to-keep-things-simple+together+not-overly-indented logic, hate logic statements barefoot in flow, and like logging in unattended processes:
Code:
if [ ! -s $msg ]
then
 date "+%Y-%m-%d %H:%M:%S ${0##*/} ($$) Discarding empty message '$msg'." >&2
 continue ?  exit ?
fi


Last edited by DGPickett; 04-29-2011 at 11:08 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell Script to read hive table and send email

HI Team, I am working on reading hive table and send email in email body using shell script, can you please help on fixing the errors: I have 6 columns in my hive table and trying to send the email in the mail body. below script: #!/bin/bash hive -e 'SELECT count(*) from db.table' >... (4 Replies)
Discussion started by: Mi4304
4 Replies

2. UNIX for Dummies Questions & Answers

Ls directory size reporting byte size instead of file count

I have been searching both on Unix.com and Google and have not been able to find the answer to my question. I think it is partly because I can't come up with the right search terms. Recently, my virtual server switched storage devices and I think the problem may be related to that change.... (2 Replies)
Discussion started by: jmgibby
2 Replies

3. Shell Programming and Scripting

Read file and send email

I have a file like this. I need to ues this file to send emails to the appropriate ID/group. For instance in the first line - Subject should be --> "A1.csv - ABC" - Body should be --> File A1.csv has changed. - Email should be sent to A1@xyz.com,A3@xyz.com Lookup.csv: ... (1 Reply)
Discussion started by: vskr72
1 Replies

4. Shell Programming and Scripting

The scripts not able to make the file to size 0, every times it go back to its original size

#!/bin/sh ########################################################################################################## #This script is being used for AOK application for cleaning up the .out files and zip it under logs directory. # IBM # Created #For pdocap201/pdoca202 .out files for AOK #1.... (0 Replies)
Discussion started by: mridul10_crj
0 Replies

5. Solaris

Directory size larger than file system size?

Hi, We currently have an Oracle database running and it is creating lots of processes in the /proc directory that are 1000M in size. The size of the /proc directory is now reading 26T. How can this be if the root file system is only 13GB? I have seen this before we an Oracle temp file... (6 Replies)
Discussion started by: sparcman
6 Replies

6. Shell Programming and Scripting

command to read file name and size

hi all, there is any command or anything we can use to read the file name and size. thanks (6 Replies)
Discussion started by: s_linux
6 Replies

7. Shell Programming and Scripting

write the script to get the file size and sends an email

hi all Anybody have an idea to write the script to get the file size and sends an email when file size increse more than 10mb. thanks (10 Replies)
Discussion started by: s_linux
10 Replies

8. Solaris

command to find out total size of a specific file size (spread over the server)

hi all, in my server there are some specific application files which are spread through out the server... these are spread in folders..sub-folders..chid folders... please help me, how can i find the total size of these specific files in the server... (3 Replies)
Discussion started by: abhinov
3 Replies

9. Shell Programming and Scripting

Email message if file size > 0 bytes

I want to create a script that emails a file created by Informix Ace if the file size is > 0. It is a list of exceptions. No exceptions...no message This does not work: THESIZE=`ls -lA /tmp/ds_treo.txt | awk -F' ' '{print $5}'` if then (cat $DSDIR/ds_treo.txt) | mail -s "Treo... (1 Reply)
Discussion started by: poste_d_ordure
1 Replies

10. Shell Programming and Scripting

send file of size 0 with FTP on AIX

I'm using IBM AIX 5.2 to send file with ftp to other unix machine. The command is into a shell: ... ftp -n > outFtp 2> errFtp <<PARAM open $2 user $3 $4 put $1 $remote bye PARAM ... then i look at the size of errFtp and outFtp to see if there are some error message.... (4 Replies)
Discussion started by: gggarb
4 Replies
Login or Register to Ask a Question