Please need immediate help with script.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Please need immediate help with script.
# 8  
Old 07-30-2008
Tools integer tests

you tried
Code:
if (( $current-$start >= 2 ))

format for integer tests
Code:
if [ $var1 -ge $var2 ]
  then
  blah-blah
fi

comparators for integers are
-eq
-ge
-gt
-le
-le
-ne
# 9  
Old 07-30-2008
Hi,

I am getting the message only for RTMSJBDB file insteadt for all the files.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:29:10 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.

Should have been like

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:29:10 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.

The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.

I think this code is having problem in the loop.

CODE:

if [[ -a $STAGE_DIR/$i.lck ]]; then
echo " Found the lock file at $(date)"
else
start=$SECONDS
echo " Start check for $STAGE_DIR/$i.lck at $(date)."
while [[ ! -a $STAGE_DIR/$i.lck ]]
do
current=$SECONDS
if [[ $current-$start -ge 2 ]]; then

status="WARNING DEV $STAGE_DIR/z.ksh at $(date)."
status="$status Waiting for the file to arrive."
message="The $STAGE_DIR/$i.lck lock file has not arrived yet."
echo "$status"
echo "$message"
$DEBUG /code/utils/mailit.ksh -sub "$status" \
-msg "$message" \
-from $operator \
-to "$operator,$im_owners,$app_owners"
start=$SECONDS
fi
sleep 60
done
fi
chk_rtn mv $STAGE_DIR/$i.zip $STAGE_DIR/failed/$i.zip
chk_rtn rm $STAGE_DIR/$i.lck
done
# 10  
Old 07-30-2008
Tools Please re-post your script

Please re-post your script with any corrections made so far (from suggestions provided). Also, use the Code-tags to maintain file spacing. [After copying your script to the message area, highlight your script and then click on the "#" smart icon.]
Doing this makes things much more read-able.
# 11  
Old 07-30-2008
Sorry for making it difficult to read.

Here is the expected output fom the script for all the files included in the for loop:

###EXPECTED OUTPUT FROM THE SCRIPT
Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:29:10 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.

But the script is returning the following output:

###ACTUAL RESULT GETTING FROM THE SCRIPT

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:28:28 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:28:28 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:29:29 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:29:29 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:30:29 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:30:29 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:31:30 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:31:30 CDT 2008. Waiting for the file to arrive.

Its giving out message for only one file rather than for all the files in for loop.

I am pasting the script with the changes suggested:

#### SCRIPT

for i in RTMSJBDB RTMSS2DB RTMSSIDB RTMSKADB RTMSFKDB RTMSDADB RTMSDEDB RTMSCLYC RTMSCNTS;do
if [[ -a $STAGE_DIR/$i.lck ]]; then
echo " Found the lock file at $(date)"
else
start=$SECONDS
echo " Start check for $STAGE_DIR/$i.lck at $(date)."
while [[ ! -a $STAGE_DIR/$i.lck ]]
do
current=$SECONDS
if [[ $current-$start -ge 2 ]]; then

status="WARNING DEV $STAGE_DIR/z.ksh at $(date)."
status="$status Waiting for the file to arrive."
message="The $STAGE_DIR/$i.lck lock file has not arrived yet."
echo "$status"
echo "$message"
$DEBUG /code/utils/mailit.ksh -sub "$status" \
-msg "$message" \
-from $operator \
-to "$operator,$im_owners,$app_owners"
start=$SECONDS
fi
sleep 60
done
fi
chk_rtn mv $STAGE_DIR/$i.zip $STAGE_DIR/failed/$i.zip
chk_rtn rm $STAGE_DIR/$i.lck
done


Please appreciate your immediate help.

Regards,
dsrules
# 12  
Old 07-30-2008
Tools does it just stay with that one file until you abort?

I can see in your script the second loop.
Code:
while [[ ! -a $STAGE_DIR/$i.lck ]]
do
blah-blah

done

Thus, if that condition is met (meaning you never change from !-a to -a), you will continue to see that message again and again until you cancel/abort.

Perhaps add a counter so you 'continue' after five tries? A 'continue' will break you out of the current do-done.

Code:
counter=0
while [[ ! -a $STAGE_DIR/$i.lck ]]
do
counter=$((counter+1))
if [ $counter .gt 5 ]
  then
  continue
fi
current=$SECONDS
if [[ $current-$start -ge 2 ]]; then

status="WARNING DEV $STAGE_DIR/z.ksh at $(date)."
status="$status Waiting for the file to arrive."
message="The $STAGE_DIR/$i.lck lock file has not arrived yet."
echo "$status"
echo "$message"
$DEBUG /code/utils/mailit.ksh -sub "$status" \
-msg "$message" \
-from $operator \
-to "$operator,$im_owners,$app_owners"
start=$SECONDS
fi
sleep 60
done

# 13  
Old 07-30-2008
Please need immediate help with script.

The loop didnt work to be expected. Its giving the message only for one file rather for all the files.

Appreciate your help.

Thanks,
dsrules.
# 14  
Old 07-31-2008
Here is the expected output fom the script for all the files included in the for loop:

###EXPECTED OUTPUT FROM THE SCRIPT
Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:29:10 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 14:30:10 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSS2DB.lck lock file has not arrived yet.

But the script is returning the following output:

###ACTUAL RESULT GETTING FROM THE SCRIPT

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:28:28 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:28:28 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:29:29 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:29:29 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:30:29 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:30:29 CDT 2008. Waiting for the file to arrive.

WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:31:30 CDT 2008. Waiting for the file to arrive.
The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.

Message: The /work/ia94086/RTMSJBDB.lck lock file has not arrived yet.
Sent to: Unavailable,,
From: Unavailable
Regarding: WARNING DEV /work/ia94086/z.ksh at Wed Jul 30 15:31:30 CDT 2008. Waiting for the file to arrive.

Its giving out message for only one file rather than for all the files in for loop.

I am pasting the script with the changes suggested:

#### SCRIPT

for i in RTMSJBDB RTMSS2DB RTMSSIDB RTMSKADB RTMSFKDB RTMSDADB RTMSDEDB RTMSCLYC RTMSCNTS;do
if [[ -a $STAGE_DIR/$i.lck ]]; then
echo " Found the lock file at $(date)"
else
start=$SECONDS
echo " Start check for $STAGE_DIR/$i.lck at $(date)."
while [[ ! -a $STAGE_DIR/$i.lck ]]
do
current=$SECONDS
if [[ $current-$start -ge 2 ]]; then

status="WARNING DEV $STAGE_DIR/z.ksh at $(date)."
status="$status Waiting for the file to arrive."
message="The $STAGE_DIR/$i.lck lock file has not arrived yet."
echo "$status"
echo "$message"
$DEBUG /code/utils/mailit.ksh -sub "$status" \
-msg "$message" \
-from $operator \
-to "$operator,$im_owners,$app_owners"
start=$SECONDS
fi
sleep 60
done
fi
chk_rtn mv $STAGE_DIR/$i.zip $STAGE_DIR/failed/$i.zip
chk_rtn rm $STAGE_DIR/$i.lck
done


Please appreciate your immediate help.

Regards,
dsrules
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question