Visit Our UNIX and Linux User Community


Automated FTP task


 
Thread Tools Search this Thread
Special Forums IP Networking Automated FTP task
# 15  
Old 06-23-2004
Quote:
Originally posted by Perderabo
I need to do a lot of automated ftp jobs myself. I have tried several versions of this and have finally settled on a style of script that I like. I found that using a .netrc file to automate the logging-in process kept painting me into a corner because different scripts needed to sign in as different users. So I avoid .netrc and force the script to sign in. I don't like to allocate pty's unless I really am forced into it, so I also avoid pty based tools like expect. I really like ksh so that was my tool of choice. And I like the co-process concept because it makes feeding commands into the ftp process so easy with "print -p". The only problem is that the co-process manipulates standard-out so as to make it available to "read -p". And it's too hard to know how many "read -p" I will need. So I send the output to a different file descriptor. Putting it all together:

Code:
#! /usr/bin/ksh

HOST=remote.host.name
USER=whoever
PASSWD=whatever

exec 4>&1
ftp -nv >&4 2>&4 |&

print -p open $HOST
print -p user $USER $PASSWD
print -p cd directory
print -p binary
print -p put tar.gz

wait
exit 0

That script will tranfer the file and the output of the script will be the output from the ftp job itself. Put the script into cron and save the output so you can look at it the next morning.
Hi:
I tried your script .. somehow it doesnt work with SFTP it still asks for password......
#!/usr/bin/ksh
exec 4>&1
sftp user@host >&4 2>&4 |&
print -p cd outgoing
print -p put test1
wait
exit 0
~

Any suggestions?
# 16  
Old 07-20-2004
I would use Perl. Any version newer that 5.0x has the necessary Net::FTP module.

#!/usr/bin/perl

use Net::FTP;

$ftp = Net::FTP->new("MACHINE_NAME", Debug => 0)
or die "Cannot connect to some.host.name: $@";

$ftp->login("USER_NAME",'PASSWORD')
or die "Cannot login ", $ftp->message;

$ftp->cwd("/pub")
or die "Cannot change working directory ", $ftp->message;

$ftp->get("that_file.tar.gz")
or die "get failed ", $ftp->message;

$ftp->quit;

You could then stuff this into the user cron. Hard coding the username and password does present obvious security issues. If you're interested in Perl, check out cpan.org and perlmonks.org

http://search.cpan.org/~gbarr/libnet-1.19/Net/FTP.pm
# 17  
Old 02-10-2005
Question Getting specific files

Does this option allow for getting a specific file? What I am looking for is to ftp the log from the previous day that is in YYYYMMDD.log format. I don't wnat to use the mget and keep transfering the older logs as well.

Thx for any updates.

Scott
# 18  
Old 06-04-2005
Thank you very much

Thank you very much for the explanation and example of this script. I had to install korn shell for the command interpreter, but at 330KB I think I can spare the diskspace.

Smilie

Here is a link to my application of this.

NASLite server

Rick D.
Brockville, Canada
# 19  
Old 06-06-2005
ups sorry its not this hall

Last edited by 7107jose; 06-06-2005 at 04:28 PM..
# 20  
Old 09-28-2005
does anyone have a C shell version of this

#! /usr/bin/csh -f




#*************************************************
#! /usr/bin/ksh

HOST=remote.host.name
USER=whoever
PASSWD=whatever

exec 4>&1
ftp -nv >&4 2>&4 |&

print -p open $HOST
print -p user $USER $PASSWD
print -p cd directory
print -p binary
print -p put tar.gz

wait
exit 0
# 21  
Old 02-06-2006
Output to File and Screen

Hi,

Iam using this part of script in a shell script...

#! /usr/bin/ksh

HOST=remote.host.name
USER=whoever
PASSWD=whatever

exec 4>&1
ftp -nv >&4 2>&4 |&

print -p open $HOST
print -p user $USER $PASSWD
print -p cd directory
print -p binary
print -p put tar.gz
print -p bye

I want the output to be on screen and to a logfile.

The Tee wont work bcos Iam not just doing ftp.

Any Ideas...

Previous Thread | Next Thread
Test Your Knowledge in Computers #441
Difficulty: Easy
"Hotel California" by the Eagles is a song about a super A.I. who goes rouge and parties all day and night.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Automated FTP

Hello,I just know the basics of scripting & I need a script to automate ftp since I use it quite often. I use ftp to transfer different kind of files and everytime the source & the destination directories are different for transferring files, so can anyone help me out on this urgently.. (2 Replies)
Discussion started by: mohit_02mar
2 Replies

2. 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

3. Shell Programming and Scripting

Automated FTP

I want to do Automated FTP from linux client to LINUX server using a shell script after every one hour. And copies last most updated file from Linux server. OR You can say that whenever files get modified on LINUX server so it also copies on my LINUX client. Linux SERVER path=... (4 Replies)
Discussion started by: wakhan
4 Replies

4. Shell Programming and Scripting

how to devlop automated FTP in UNIX

Automated FTP. hint : use 'atd' to schedule to run a specific script. An Env Variable should be created,say CONF_DIR which points to some dir. @ some time, create a TAR file of this and FTP it to some server. (3 Replies)
Discussion started by: vishalzone2002
3 Replies

5. 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

6. IP Networking

Automated ftp for Multiple files

I have seen the script posted yesterday for automated ftp Can we do some thing like ftp ing multiple files in one script Example input.txt has all files names to be ftped input.txt ------ a.tar b.ccp c.perl i need to ftp all the files present in input.txt i tried something like... (0 Replies)
Discussion started by: pbsrinivas
0 Replies

7. UNIX for Dummies Questions & Answers

one time automated ftp session

How can an automated script be setup to run at a later time in the day. cron runs recurring tasks. I am interested in a one time process. I want to back up a number of files whenever I make changes to an application and ftp for backup purposes. The script to automate the zipping of files has... (1 Reply)
Discussion started by: msmkeml
1 Replies

8. UNIX for Advanced & Expert Users

Automated FTP

My requiremnet is to write a FTP script which will ftp a file to a specified ftp url. How can I automate the process usnig the unix cron. (11 Replies)
Discussion started by: shauche
11 Replies

9. UNIX for Dummies Questions & Answers

FTP automated?

If I wanted a machine to put a specific file onto another OS far across the internet via FTP - and I wanted to do it automatically not user intervented, how would I do that? Use the PUT command? The file name and position never changes, it gets overwritten and the system on the other end... (6 Replies)
Discussion started by: n9ninchd
6 Replies

Featured Tech Videos