Sponsored Content
Special Forums IP Networking Automate FTP process and autorestart on link failure Post 302225165 by amsct on Thursday 14th of August 2008 05:45:20 PM
Old 08-14-2008
i wouldn't recommend using ftp as scp/sftp are much better easier in error handling and offer much better security.

Anyway, I made a while ago an auto-ftp script, find below some hints:

- In fact you should make your script loop untill a success condition is reached, which in this case means all files are transferred successfully.
- In your script, you should save the ftp output and have it checked to ensure last transfer is ok. this is what I came up with:

I just grabbed this code from the source scripts, so it might not be ready for use. it is just to get the idea.

In fact if you could grep ^226 $resultfile |grep -v "226 bytes" it should be a good indication the file is transmitted successfully.
The reason to grep -v "226 bytes" is in case the file is 226 bytes you'll grep
226 bytes transferred (or something like that).

#syntax:
#analyze_ftpresult <ftpresult file>

function analyze_ftpresult
{

# check rfc 959 on http://www.ietf.org/rfc/rfc0959.txt
#
resultfile=$1
is_error=0
is_noconnect=`fgrep "Not connected" ${resultfile} 2>/dev/null`
is_226=`grep ^"226 " ${resultfile} 2>/dev/null|grep -v ^"${errcode} bytes" 2>/dev/null`
is_250=`grep ^"250 " ${resultfile} 2>/dev/null|grep -v ^"${errcode} bytes" 2>/dev/null`

if [ -z "${is_226}" -a -z "${is_250}" ] ;then
return 1
fi
if [ -n "${is_noconnect}" ] ;then
return 10
fi

${debug} && set +x
# Too much debugging info
for errcode in `echo 421 425 426 450 451 452 500 501 502 503 504 530 550 551 552 553`
do
error=`grep ^"${errcode} " ${resultfile} 2>/dev/null|grep -v ^"${errcode} bytes" 2>/dev/null`
case ${error} in
421|425|426) return 10 ;;
esac
if [ -n "${error}" ] ; then
is_error=`expr ${is_error} + 1`
echo "${stamp} ERROR ${_sfile}: ${error}" >>${somelogfile}
fi
done
${debug} && set -x
return ${is_error}
${debug} && echo "<< end function analyze_ftpresult >>"
}
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

automate an ftp job

Hi, I am trying to write and automate a ftp job that connects to a IBM mainframe and pulls the same files everyday. To do this I assumen I create a .netrc file in my solaris home directory, then I write a shell script. How do I envoke ftp from a ksh script and pass it the info in .netrc? I... (11 Replies)
Discussion started by: flowrats
11 Replies

2. Answers to Frequently Asked Questions

Automate FTP / Scripting FTP Transfers

One of our most frequent questions is how to automate ftp transfers. There are several approaches. Since I'm writing this post, we will start with my favorite technique. :) In Automated FTP task I present a simple example of my ksh co-process technique. And note that later in this thread I... (0 Replies)
Discussion started by: Perderabo
0 Replies

3. UNIX for Advanced & Expert Users

Automate FTP

Hi all, I got this piece of code in this forum and I can't seem to get it work. The thread already closed so I just post a new thread. #!/usr/bin/ksh ftp -v -n "YOUR.IP.ADD.RESS" << cmd user "user" "passwd" cd /distant/directory lcd /local/directoryget ssh_install get ( or put) your... (4 Replies)
Discussion started by: CamTu
4 Replies

4. Shell Programming and Scripting

How to automate an FTP process?

Hello script experts, I am newbie to shell script. But I have to write a shell script (ASAP) where I need to ftp a file on daily basis to a remote server, and send an email with final status. I I should have a properties file with hostname, Userid, and pwd. And a shall script file should read... (1 Reply)
Discussion started by: ksak
1 Replies

5. Shell Programming and Scripting

Automate FTP

Hi, Currently, i am using sftp manully to transfer files between two secure servers. Can anyone provide me a sample shell script which can automate the sftp process? (11 Replies)
Discussion started by: borncrazy
11 Replies

6. Shell Programming and Scripting

How to automate ftp in perl

My situations is I cannot use NET::ftp. So I need to have a way to automate ftp. I know how to do it in ksh: #!/usr/bin/ksh ftp -i -v -n $host_name <<_FTP >> $log_file 2>&1 user $user_name lcd $local_dir cd $remote_dir put $file_name bye _FTP But how can I do it in perl? Note:... (6 Replies)
Discussion started by: egyfan
6 Replies

7. Shell Programming and Scripting

To automate a process

CAN ANYONE HELP TO SOLVE i wann write a script to automate a process .i.e, to search files in the FTP server and and if files are there and we hav to bring that files to our system. After copying the files in our system we have to upload the data in the tables. I have scripts to load the... (0 Replies)
Discussion started by: nani1984
0 Replies

8. UNIX for Advanced & Expert Users

TO Automate the FTP process

Plzz Some One Help in this matter I have scripts to load the data into tables and to copy files from ftp to our system. we use to run the scripts every day.... we hav the files in the FTP server and we hav to bring the files to our system and we hav to load the data into the tables. We... (0 Replies)
Discussion started by: nani1984
0 Replies

9. UNIX for Dummies Questions & Answers

To automate a process

CAN ANYONE HELP TO SOLVE i wann write a script to automate a process .i.e, to search files in the FTP server and and if files are there and we hav to bring that files to our system. After copying the files in our system we have to upload the data in the tables. I have scripts to load the... (2 Replies)
Discussion started by: nani1984
2 Replies

10. Shell Programming and Scripting

Automate [ls]ftp

Heyas Seen some of the ftp posts here and knowing i'll be writing a script using ftp soon, so i thought i'd write a script to automate, or at least simplify some basic tasks with it. I'm currently stuck at handling active/passiv modes. Neither lftp nor sftp seem to support them by arguments,... (3 Replies)
Discussion started by: sea
3 Replies
ZGREP(1)						      General Commands Manual							  ZGREP(1)

NAME
zgrep - search possibly compressed files for a regular expression SYNOPSIS
zgrep [ grep_options ] [ -e ] pattern filename... DESCRIPTION
Zgrep invokes grep on compressed or gzipped files. These grep options will cause zgrep to terminate with an error code: (-[drRzZ]|--di*|--exc*|--inc*|--rec*|--nu*). All other options specified are passed directly to grep. If no file is specified, then the standard input is decompressed if necessary and fed to grep. Otherwise the given files are uncompressed if necessary and fed to grep. If the GREP environment variable is set, zgrep uses it as the grep program to be invoked. EXIT CODE
2 - An option that is not supported was specified. AUTHOR
Charles Levert (charles@comm.polymtl.ca) SEE ALSO
grep(1), gzexe(1), gzip(1), zdiff(1), zforce(1), zmore(1), znew(1) ZGREP(1)
All times are GMT -4. The time now is 12:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy