Using FTP from cron with .netrc

Thad P Floryan thad at cup.portal.com
Fri Jan 11 02:53:40 AEST 1991


kmeek at cti1.UUCP (Kevin Meek) in <366 at cti1.UUCP> writes:

	I am trying to send files from a central machine to 
	another file on the remote host.

	What I've done is create a .netrc directory in my home directory
	with the machine name and password.

	then I run the following shell script
	[...]
	This script works fine when I execute it from the prompt 
	but when I try to run it from my cron I get the following
	errors.  
	[...]
	It isn't using the .netrc??  
	I tried setting the $HOME variable and even running an
	su -c username "shellscript" in the cron so my .profile
	would be run but still no dice!.

	Any suggestions  -- why won't ftp work from cron.

	I am working on an AT&T 3B2600G running system V ver 3.2.2

At first I received the same errors and non-performance that you did on my
3B1 systems.  Then I tried some experiments and got it to work fine!

The trick is in both the shell script and in the crontab entry.

Running it as my normal login, thad, it all worked fine.

Running it as another user, even su'd to thad, my "doit" script didn't work,
so I added the "echo" of $HOME and $PWD and that provided the clue to set
HOME in the shell script itself since that's what ftp apparently needs, and the
use of "/bin/sh" is important in the crontab entry to prevent a "Nonstandard
shell" error message.

Kevin's posting of his problem highlighted a potentially neato application
I needed to do, so I had more than a passing interest to get this to work.
Thanks for the idea, and accept this fix as my way of saying "Thanks!".

To avoid cluttering the net with example of some stupid errors (:-) I'll just
show the final script, crontab entry, and log of a successful run.

First:
	total 14
	-rw-r--r--  1 thad    users       865 Jan 10 07:22 #ftp-with-cron
	-rw-r--r--  1 thad    users       785 Jan 10 07:17 crontab
	-rw-r--r--  1 thad    users       916 Jan 10 07:16 crontab~
	-rw-r--r--  1 thad    users        61 Jan  9 04:53 doit
	-rwxr-xr-x  1 thad    users       220 Jan 10 07:11 doit2
	-rwxr-xr-x  1 thad    users       218 Jan 10 06:57 doit2~
	-rw-r--r--  1 thad    users      1648 Jan  9 03:19 ftp-with-cron
	-rw-r--r--  1 thad    users        91 Jan  9 04:23 toget

Crontab entry (the first produces no log, the second does):

	#13    7  *  *  *  /bin/sh         -c "/u/thad/test/doit2  >/dev/null"
	15    7  *  *  *  /bin/sh         -c "/u/thad/test/doit2"

The shell script (doit2):

	uname -a
	#who am i			# had to patch out for use with cron
	echo $HOME "   " $PWD
	#
	HOME=/u/thad;export HOME
	#who am i			# had to patch out for use with cron
	echo $HOME "   " $PWD
	#
	cd /u/thad/test
	echo $HOME "   " $PWD
	#
	ftp <<!
	open tlabs3
	binary
	verbose
	get xfr/hdhelp.tar hdhelp.tar
	bye
	!
	exit 0

The results from the cronlog, and note that whomever is actually running cron
does NOT have a $HOME or $PWD:

Thu Jan 10 07:12:00 1991
crontab read
/bin/sh         -c "/u/thad/test/doit2 > /dev/null"

Thu Jan 10 07:14:00 1991
crontab read
/bin/sh         -c "/u/thad/test/doit2"
UNIX thadlabs SYSTEM5 3.51a mc68k
   
/u/thad    
/u/thad    
Verbose mode on.
200 PORT command okay.
150 Opening data connection for xfr/hdhelp.tar (128.15.22.2,1206) (15360 bytes)
.
226 Transfer complete.
15360 bytes received in 0.28 seconds (53 Kbytes/s)
221 Goodbye.
/bin/su uucpadm -c "/usr/lib/uucp/uudemon.poll    >/dev/null"

Thu Jan 10 07:18:00 1991
crontab read
/bin/su uucpadm -c "/usr/lib/uucp/uudemon.hour    >/dev/null"



More information about the Comp.sys.att mailing list