The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Special Forums > IP Networking
.
google unix.com



IP Networking Learn TCP/IP, Internet Protocol, Routing, Routers, Network protocols in this UNIX and Linux forum.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
automated ftp. sangfroid Shell Programming and Scripting 10 05-07-2007 11:52 AM
process vs task hana UNIX for Dummies Questions & Answers 2 07-02-2006 06:32 PM
Automated FTP shauche UNIX for Advanced & Expert Users 11 07-11-2002 02:08 AM
FTP automated? n9ninchd UNIX for Dummies Questions & Answers 6 05-18-2001 10:21 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-30-2001
LowOrderBit LowOrderBit is offline
Registered User
  
 

Join Date: Aug 2001
Location: CA
Posts: 23
thanks again.. this is what i have for the script (after wrestling with Vi for about half an hour.)

text nested in /* */ is not actually in the script, these are my questions to the forum...

#!/usr/bin/ksh
/* is this neccessary, or can i run it in the default shell?*/

HOST=10.0.0.3
USER=root
PASSWD=*****

/* what exactly do these two lines do? */
exec4>&1
ftp -nv >&4 2>&4 |&

print -p open $HOST
print -p user $USER $PASSWD
print -p cd /
print -p cd /u/home
print -p lc ..
print -p binary
print -p put rwc8.tar.gz

wait
/* does this wait until the ftp completes, or is it expecting a number? */

exit 0

i pretty much copied exactly what perderabo posted a few replies up...

two questions:

1) is it ok to run this job as root or should i create an ftp user for this task??? i really dont like the fact that the root password is in clear text in this script.. if someone stumbled across it and opened it they would have the root pw..

2) i would like the daemon to send me a mail with the results job.. the text that is spit out when the ftp session completes would be fine, just so i know how much data was transferred.


thanks again..

e0-
  #2 (permalink)  
Old 08-30-2001
rwb1959's Avatar
rwb1959 rwb1959 is offline
Registered User
  
 

Join Date: Aug 2001
Location: Virginia, USA
Posts: 438
auto - ftp

The script must run as ksh since you are
using ksh built-in's (print) and capabilities.

I would set up a new user to run this as.
You may have problems logging in as root
via ftp on the remote unless you have configured
the remote to allow this (I try to avoid using
root where ever possible).

Check out the "tee" command to set up a
" | mail someuser@somehost.com"

The "wait" will wait for the child(s) to
complete.
  #3 (permalink)  
Old 06-23-2004
sm321 sm321 is offline
Registered User
  
 

Join Date: Jun 2004
Posts: 5
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 directory
print -p put test
wait
exit 0
~

Any suggestions?
  #4 (permalink)  
Old 06-23-2004
sm321 sm321 is offline
Registered User
  
 

Join Date: Jun 2004
Posts: 5
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?
  #5 (permalink)  
Old 07-20-2004
mhersant mhersant is offline
Registered User
  
 

Join Date: Jul 2004
Location: Seattle
Posts: 9
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
  #6 (permalink)  
Old 02-10-2005
sah149 sah149 is offline
Registered User
  
 

Join Date: Feb 2005
Posts: 1
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
  #7 (permalink)  
Old 06-04-2005
rdeschene3 rdeschene3 is offline
Registered User
  
 

Join Date: May 2005
Posts: 4
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.



Here is a link to my application of this.

NASLite server

Rick D.
Brockville, Canada
Closed Thread

Bookmarks

Tags
linux, mtime, sendmail

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 10:20 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0