Unix Technical Forum

How to have a shell script write a log file with a function

This is a discussion on How to have a shell script write a log file with a function within the AIX Operating System forums, part of the Unix Operating Systems category; --> I have a schell script that runs continously on an AIX system. It is actually started from another shell ...


Go Back   Unix Technical Forum > Unix Operating Systems > AIX Operating System

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-05-2008, 11:47 AM
heprox
 
Posts: n/a
Default How to have a shell script write a log file with a function

I have a schell script that runs continously on an AIX system. It is
actually started from another shell script with the "ksh -x" command
and then I just write the output to a log file. This causes the log
files to be filled with mostly useless information. I would like to
modify this script to create its own log file internally and then be
able to just have it log select acitivity. The script looks like:

Code:
#!/bin/ksh
PATH=/gers/nurev/menu/pub/sbin:/gers/nurev/menu/pub/bin:/gers/nurev/menu/pub/mac
:/gers/nurev/menu/adm/sbin:/gers/nurev/menu/adm/bin:/gers/nurev/menu/adm/mac:/ge
rs/nurev/custom:/gers/nurev/fix:/gers/nurev/src_rev/fix:/gers/nurev/opt/path:/ge
rs/nurev/bin:/g/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/sbin:.
ORACLE_HOME=/gers/nurev
ORACLE_SID=nurev
export PATH
export ORACLE_HOME
export ORACLE_SID

#
# Function : is_file_arrived file
# Arg(s)   : file = file to verify
# Output   : None
# Status   : 0 = yes file arrived, 1 = no
# Env.     : IFA_WAIT : interval (secs) for file size check (def=5)
#

is_file_arrived() {
[ -z "$1" ] && return 1
local file=$1
local arrived=1
local size1 size2
if [ -f "$file" -a -z "$(fuser $file 2> /dev/null)" ] ; then
size1=$(ls -l $file 2>/dev/null | awk '{print $5}')
sleep ${IFA_WAIT:-15}
size2=$(ls -l $file 2>/dev/null | awk '{print $5}')
[ ${size1:-1} -eq ${size2:-2} ] && arrived=0
fi
return $arrived
}


processFile ()
{
local fileName=$1
local fileExtension=$2
local fileNewName="/gers/nurev/datafiles/str${fileExtension}.asc"
local filePrintPath="/gers/nurev/print"
local fileTmpPath="/gers/nurev/tmp"
local fileODIName="str${fileExtension}.pos"
mv -Eignore $fileName $fileNewName
prepup $fileNewName $fileExtension
mv -Eignore  $filePrintPath/$fileODIName $fileTmpPath/$fileODIName
save2tmp $fileExtension
call_siu $fileExtension   ###I'd like to add when this command is
run and the $fileExtension given date/time
}

# Main Processing

nsec=1
while [[ "$(date +%H%M)" -lt 2329 ]]
do
for fileName in
/gers/nurev/datafiles/[Uu][Pp][Ll][Oo][Aa][Dd].[0-9][0-9][0-9
][0-9]     ###I'd like to log when a file is found with date/time
do
fileExtension=${fileName#*.}
is_file_arrived "$fileName" && nsec=1 && processFile $fileName
$fileExtens
ion
done
sleep $nsec
case $nsec in
1)   nsec=15;;
15)  nsec=45;;
45)  nsec=90;;
90)  nsec=300;;
300) nsec=600;;
600) nsec=900;;
*)   nsec=1800;;
esac
done
....the log file should just have a variable declared about the logfile
name and path. Is there a way to create a function to write the log
entry and then I could just call the function and hand it a parameter
that would be the log entry? Say something like "LOG(0002 processed at
11-11-06/12:00)"?

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 12:15 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com