How to trap FTP error

Dear Experts,

I have the following script. It set as a cron job. It works fine if the file is present on the server, but if it is not, the script hangs.
How can I trap the failure and then exit from the script?
sfukAsked:
Who is Participating?
 
Duncan RoeConnect With a Mentor Software DeveloperCommented:
Rather than run ftp with a here document, you have far more control if you drive it via expect. Picking up errors becomes almost a no-brainer. If you are interested, I can post an example or 2.
0
 
WalkaboutTiggerCommented:
do an ls on the ftp server then perform a find or grep on "abc" or some known substring within the filename.
If no lines are returned, the file does not exist.
0
 
sfukAuthor Commented:
Thank you, WalkaboutTigger, for your quick response.

When i open ftp process, can I do something like

echo `ls -l abc*` > abc.log
0
 
sfukAuthor Commented:
I made the following changes/additions in my initial script and solved the problem.


#! /bin/bash

v_rundir="/home/abc"
v_ftp=`cat ftp.log | grep "not found" | wc -l`
cd $v_rundir
 
rm ftp.log

# Test to see if this process is already running...
if [ -e process.lck ] ; then   # if it is, then exit...
 exit
fi
echo $$ > process.lck     # otherwise, lock this process from duplicated execution...

#FTP Function
# Get the new pgp files...
sftp username@ftp4.server.com <<EOF >>/home/abc/ftp.log 2>&1
cd abc/Toabc
mget abc*.txt.pgp
rm abc*.txt.pgp
quit
EOF
if [ $v_ftp -ne "0" ]; then
rm process.lck
exit 1 
fi
exit

Open in new window

0
 
DhaestCommented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
All Courses

From novice to tech pro — start learning today.