Attached below is my current script scheduled from crontab to run every 3 minutes every hour except from 2-3Am. We received PNTs files to our inbox directory through FPT. The script processes multiple PNTs files from inbox directory. Each PNT file takes about 1-2 minutes to complete process. But if there is a large amount FTPed of the PNTs files (100-200 files) in the inbox directory came before 2AM then the program take time to get it completed then it will over lap with the other jobs were scheduled to run reports from 2-3AM which use the number of PNTs got processed.
What I need is a way to put the script in idle if the time is between 2-3AM and re-process PNTs files again after 3AM. Like using sleep (???) command. I'm thinking put another line inside while loop before the command line below: New command line to to idle the process if time is between 2-3AM.
SASPROG=`PathSASCode.sh TMA001ENRPNT_PNTProcessing.sas`
Thank you for all your help!
Code:
#!/bin/ksh
TOUCHFILE=/home/ingxsas/STMA001ENRPNT_PntInputLoop.touch
if [ -f $TOUCHFILE ]
then
echo $0 already executing, exiting at `date`
exit 0
fi
touch $TOUCHFILE
pntcnt=`ls -l /$ROOTDIR/scp/inbox | grep "PNT." | wc -l`
if [[ $pntcnt -gt 0 ]] then
ls /$ROOTDIR/scp/inbox | grep "PNT." > /$ROOTDIR/output/tma/pnt/input/pntprocess.dat
pntcnt=`wc -l /$ROOTDIR/output/tma/pnt/input/pntprocess.dat|awk '{print $1}`
sleep 10
curcnt=1
while (( $curcnt <= $pntcnt ))
do
filename=`head -$curcnt /$ROOTDIR/output/tma/pnt/input/pntprocess.dat | tail -1`
New command line to to idle the process if time is between 2-3AM.
SASPROG=`PathSASCode.sh TMA001ENRPNT_PNTProcessing.sas`
sas $SASPROG -sysparm $filename \
-work /$WORKDIR/imatemp \
-log /$ROOTDIR/output/tma/pnt/logs \
-print /$ROOTDIR/output/tma/pnt/logs
rc=$?
if (($rc != 0))
then
echo PNT Processing Terminated due to bad return code - $filename at `date`
exit $rc
fi
sed "s/^/$filename/" /$ROOTDIR/scp/inbox/$filename > /$ROOTDIR/output/tma/pnt/archive/$filename
rc=$?
if (($rc != 0))
then
echo PNT Processing Terminated - error with sed command - $filename at `date`
exit $rc
fi
mv /$ROOTDIR/scp/inbox/$filename /$ROOTDIR/scp/inbox/archive/$filename
rc=$?
if (($rc != 0))
then
echo PNT Processing Terminated - error with mv command - $filename at `date`
exit $rc
fi
((curcnt=curcnt+1))
done
echo Successful process of $pntcnt PNT files completed at `date`
fi
rm $TOUCHFILE
Hi Perl/UNIX experts,
I have a problem in running a shell script from my perl script (auto.pl).
I run the perl script using
perl auto.pl
from the shell prompt
The shell script picks the files in "input" folder and procesess it.
The shell script blue.sh has this code.
export... (16 Replies)
Hi,
I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input.
I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
i want use ssh on the host01 to execute autoexec.sh on the host02 like following :
host01> ssh host02 autoexec.sh
autoexec.sh include nohup command like follwing :
nohup /home/jack/deletedata.sh &
after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Hi,
I basically have 2 shell scripts.
One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system.
Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn.
... (2 Replies)
Hi All,
I have new for shell scripting.
Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat.
I need to call this script at server2(my working server) and execute at server2 .
Please let me know how to build the... (5 Replies)
I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist.
diff=$1$2.diff
id=$2 new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff | awk... (2 Replies)
Dear Unix gurus,
We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Dear Unix gurus,
We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Dear Friends,
Please help me on this
my script name is send.csh
In this i have written the statement like this
set args = ( city state country price )
I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell
or
how to pass to... (2 Replies)
Hi,
I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service)
lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies
LEARN ABOUT REDHAT
crond
CRON(8) System Manager's Manual CRON(8)NAME
cron - daemon to execute scheduled commands (Vixie Cron)
SYNOPSIS
cron
DESCRIPTION
Cron should be started from /etc/rc or /etc/rc.local. It will return immediately, so you don't need to start it with '&'.
Cron searches /var/spool/cron for crontab files which are named after accounts in /etc/passwd; crontabs found are loaded into memory. Cron
also searches for /etc/crontab and the files in the /etc/cron.d/ directory, which are in a different format (see crontab(5)). Cron then
wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current minute. When execut-
ing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if
such exists).
Additionally, cron checks each minute to see if its spool directory's modtime (or the modtime on /etc/crontab) has changed, and if it has,
cron will then examine the modtime on all crontabs and reload those which have changed. Thus cron need not be restarted whenever a crontab
file is modified. Note that the Crontab(1) command updates the modtime of the spool directory whenever it changes a crontab.
SEE ALSO crontab(1), crontab(5)AUTHOR
Paul Vixie <paul@vix.com>
4th Berkeley Distribution 20 December 1993 CRON(8)