Sponsored Content
Top Forums Shell Programming and Scripting Status check of Automated FTP Post 48299 by anijog on Wednesday 3rd of March 2004 06:29:39 AM
Old 03-03-2004
Status check of Automated FTP

Hi,

I've following code fragment as a part of 1 of my scripts.

Function is supposed to perform automated ftp to designated host.

Here are the details:-

#! /usr/bin/ksh

< some code>


perform_ftp()
{

#Assume that file to transfer is available in current directory

TMP_FILE=/tmp/$$-FTP
echo " open <hostname>" > ${CMD_FILE}
echo "user <user name> <password> " >> ${CMD_FILE}
echo "put <some file> " >> ${CMD_FILE}
echo "bye" >> ${CMD_FILE}

ftp -vin < ${CMD_FILE} 1> /dev/null 2>>${ERROR_LOG}

if [ $? -ne 0 ]; then
echo "\nError Transmitting the file"
rm -f ${CMD_FILE}
exit 1
else
echo "\nSuccessfully Transmitted report file."
fi

rm -f ${CMD_FILE}

}

The problem with above function is that even though the actual put command is not successful, say because file system is full or lack of appropriate permission, script will always report that file was transmitted successfully.

This is because last command "bye" executed as a part of FTP is always successful & "$?" always returns 0.

Any pointers how can I check whether "put" command was successful or not?

P.S. :- Requirement is not to log output of ftp command in ERROR_LOG. It has to be discarded, no matter whether FTP is successful or not.






}
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ftp Status Check

Hi, I'm using the below script to ftp the file passed as 3rd argument. I'm passing the source and destination directory as 1st and 2nd argument. This script does the ftp successfully. The script displays the echo before ftp stmt and does the ftp and does not display the stmts after that... (4 Replies)
Discussion started by: acheepi
4 Replies

2. Shell Programming and Scripting

check the status and send an email with status

Hi, We have a text file which has the following data. ISA~00~ ~00~ ~ZZ~VISTN ~ZZ~U1CAD ~051227~183 7~U~00200~000011258~0~P~< GS~FA~EE05J~U1CAD~051227~1831~000011258~X~002002 ST~997~0001 AK1~SH~247 AK2~856~2470001 AK5~A AK2~856~2470002 AK5~A... (3 Replies)
Discussion started by: isingh786
3 Replies

3. UNIX for Dummies Questions & Answers

Automated FTP to variable directory with error check

Hi, automated FTP that have error check and each product FTP will used the same userid/password to post(transfer) the file(s) from their <product> directory at UNIX to their <product> folder at Windows. such senarios as follows: NOTE: ======= ** Variable ** * The <product> is variable... (3 Replies)
Discussion started by: songtam
3 Replies

4. Shell Programming and Scripting

automated ftp.

Hi I am trying to delete some specific files ( files other than created today) from the server on a cron basis. I wrote a small script, but I am stuck up in how to delete only specific files. #!/usr/bin/expect -f set IP set timeout -1 spawn ftp $IP expect ): send "username\n"... (10 Replies)
Discussion started by: sangfroid
10 Replies

5. Shell Programming and Scripting

How to check the FTP Status?

Hi, I wrote a script that is generating a file and then i have to ftp this file on another server. For this i am using mput to put the file. How can i make sure that the file was ftp'd correctly to the another server, is there any status check ? Thanks. (1 Reply)
Discussion started by: smc3
1 Replies

6. Shell Programming and Scripting

Check FTP Status

To all, I need to run a ftp command in one of my scripts and I need to evaluate what happens after it's done. The problem is the script would not capture the ftp responses. If I type the same thing on the command line, I get all kinds of responses. I would like to capture the same responses in... (2 Replies)
Discussion started by: april
2 Replies

7. Shell Programming and Scripting

Automated FTP script using .netrc to multiple FTP servers

Hi all, I'm using the following script to automated ftp files to 1 ftp servers host=192.168.0.1 /usr/bin/ftp -vi >> $bkplog 2>&1 <<ftp open $host bin cd ${directory} put $files quit ftp and the .netrc file contain machine 192.168.0.1 login abc... (4 Replies)
Discussion started by: varu0612
4 Replies

8. Shell Programming and Scripting

FTP Status check(whether it is successful or not)

Hi Friends I need to check the status of FTP connection i.e. Whether it is successful or not I have tried this by assigning the FTP connection script to a variable and after that using this variable I tried to check the status. In the below code snippet I am trying to assign the FTP... (1 Reply)
Discussion started by: Kannannair
1 Replies

9. UNIX for Advanced & Expert Users

FTP commands to check the file status

Hi Experts, Can some one let me know the FTP commands to check the file status i.e i want to check whether my files are locked or in open status. I am connecting FTP from local machine. Regards, Spidy (1 Reply)
Discussion started by: spidy
1 Replies

10. UNIX for Beginners Questions & Answers

How to see the status of all the ftp put & get files logs and curent ftp transfer status ?

How to see the status of all the ftp put & get files logs and curent ftp transfer status if any active ftp running in the background ? (2 Replies)
Discussion started by: i4ismail
2 Replies
FTP-UPLOAD(1p)						User Contributed Perl Documentation					    FTP-UPLOAD(1p)

NAME
ftp-upload - batch transfer local files to an FTP server SYNOPSIS
ftp-upload [any-switch]... {[repeatable-switch]... file...}... DESCRIPTION
ftp-upload is used to send local files to an FTP server. It isn't interactive, it's meant to be used from scripts. It is disciplined about its exit value and it doesn't output informational messages by default. There are two kinds of switches. Initial switches have to appear before any filenames, they affect the session as a whole. Repeatable switches can appear interspersed with the file names, they affect the transfer of the files which appear after them on the command line. OPTIONS
Initial switches These have to be used before any file names listed on the command line. --debug Turn debugging on. --help Show the usage message and die. --ignore-quit-failure Don't complain or set a failure exit code just because the QUIT command fails. This can be necessary because some servers, in blatant disregard of RFC 959, close the command channel when you send them an ABOR command. -v, --verbose Print informational messages to stdout. --version Show the version number and exit. Initial switches which specify connection information These also have to be used before any file names listed on the command line. They specify the information used to set up the FTP connec- tion. --account account This specifies the account to be used when logging into the remote system. This is distinct from the user name used to log in. Few systems need this. There is no default. -h, --host host Specify the host to which to connect. There is no default, you have to specify this switch. --passive Force the use of passive (PASV) transfers. Passive transfers are required with some firewall configurations, but if you have such you'd do better to configure Net::FTP so that it knows when to use them (see Net::Config). If you need to use passive transfers with certain (broken) servers, however, this switch is your best bet. Alternatively, you can set $FTP_PASSIVE to 1 in the environment (see Net::FTP). --password pw This gives the password which will be used to login. The default is your email address. Note that you should not specify a real (secret) password this way, as on most systems anybody on the machine can see the arguments you pass to your commands. Use one of other password-setting switches instead. -s, --password-stdin This tells ftp-upload to read the password from standard input. No prompt will be printed, and a single line will be read. Most peo- ple will use this switch to specify the password. Eg, echo 3x9sjJJh | ftp-upload -sh $host -u $user $file Using echo this way is safe where the --password switch isn't if the echo command is built in to the shell. --password-fd fd This is like --password-stdin except that it reads the password from the file descriptor numbered fd. ftp-upload -h $host -u $user --password-fd=3 3<$pw_file $file -u, --user user Specify the user name to use when logging in. The default is "anonymous". Repeatable switches These switches can be used anywhere on the command line (except after the last file name). They affect the transfer of files listed after them. --as remote-name Normally a file is transferred using the same name it has locally. If you use this switch the next file transferred will be called remote-name on the other host instead. ftp-upload --host $host --as index.htm index.html -a, --ascii Perform transfers in ASCII mode. -b, --binary Perform transfers in binary mode. This is the default. -d, --dir dir Change directory to dir on the FTP server before continuing. You can use this multiple times between files, ftp-upload will chdir once for each time you specify it. Using ".." as the dir will cause an FTP "CDUP" to be done rather than a "CWD". --full-path Normally uploaded files go into the current directory on the remote host, even when the local file name given contains slashes. Eg, if you say ftp-upload -h $host /etc/motd ftp-upload will upload the file as motd, not /etc/motd. This differs from how the standard ftp program works, and it also differs with how ftp-upload worked before version 1.3. If you specify --full-path, you'll get the other behavior. A request to upload dir/file will tell the server to store dir/file rather than file. When you use --as the --full-path setting doesn't matter. --full-path only tells the program what name to use when it's choosing the name. --no-full-path Disable --full-path. This is the default. -l, --ls Try to get a remote directory listing of files after transferring them. I say "try" because there's no guaranteed way to do this with the FTP protocol. The command I run is "LIST file". This will generally work if file doesn't contain any special characters. -L, --no-ls Disable the --ls behavior. --tmp-none Transfer files directly, don't do anything special to try to ensure that they don't appear under their real names on the remote machine until the transfer is finished. Each file is transferred with a single simple "STOR". This is the default. --tmp-samedir Transfer files to the remote machine using a temporary name, then rename them when the transfer finishes. This won't work if the remote server doesn't give a recognizable response to the "STOU" command. If the server's response to "STOU" isn't recognized by Net::FTP but is reasonable, Graham Barr might be willing to change Net::FTP to recognize it. If you like you can send the "--debug" output to me and I'll coordinate such requests. --tmp-dir dir Transfer files to dir on the remote host, then rename them when the transfer is complete. This is safer than --tmp-samedir because it doesn't use "STOU" and so it works with more servers. ftp-upload -h $host --tmp-dir incoming $file --tmp-format fmt Transfer files to "sprintf(fmt, file base name)", then rename them when the transfer is complete. Like --tmp-dir, this is safer than --tmp-samedir because it doesn't use "STOU" and so it works with more servers. ftp-upload -h $host --tmp-format tmp.%s $file AUTHOR
Roderick Schertler <roderick@argon.org> perl v5.8.7 2006-03-16 FTP-UPLOAD(1p)
All times are GMT -4. The time now is 05:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy