----- Original Message ----- 
From: "Toomas Aas" <[EMAIL PROTECTED]>
Sent: Tuesday, December 16, 2003 12:38 PM
Subject: fetch / wget problem

> Hi!
> I'm trying to write a script which gets a file from remote FTP server.
> The FTP username contains dots and this cannot be changed.
> There are two firewalls involved, one running on the same server where
> I'm doing this (ipfilter, using ipnat ftp proxy) and one between this
> server and the FTP server. The FTP server itself is in internal network
> using RFC1918 addresses and a port in firewall is being forwarded to
> this server.
> I think that firewalls are configured correctly, because I can
> successfully get the file manually, using the 'ftp' command.
> However, when I try this command:
> fetch ftp://user.name:[EMAIL PROTECTED]/directory/file.ext
> I get an error message:
> fetch: ftp://user.name:[EMAIL PROTECTED]/directory/file.ext:
> Host not found.
> I suspect that fetch, seeing a dot in username, attempts to 'resolve'
> the entire URL, instead of just the part after @. Is there a known
> workaround to this?
> I also tried wget, which succeeds to connect, but then, no matter what
> I do, insists on using passive mode.
> wget ftp://user.name:[EMAIL PROTECTED]/directory/file.ext
> Connecting to server.mydomain.com[]:2100... connected.
> Logging in as user.name ... Logged in!
> ==> SYST ... done.    ==> PWD ... done.
> ==> TYPE I ... done.  ==> CWD /directory ... done.
> ==> PASV ...
> and then the process just hangs.
> I suspect it would work if I could somehow tell wget to NOT use passive
> mode. I initially had FTP_PASSIVE_MODE environment variable set, but
> removing this didn't affect wget's behaviour.
> Any ideas?
> --
> Toomas Aas | [EMAIL PROTECTED] | http://www.raad.tartu.ee/~toomas/
> * RUNTIME ERROR 6D at 417A:32CF : Incompetent user

You may be able to do this with a .netrc in the user folder that's running
the script.

In .netrc, you'll have:

machine <ftp server name>
login <loginname>
password <password>

Then you can script it with the exact commands that you'd use to get the
file if you did it manually. For example, if you wanted /etc/test.sh and you
wanted to store it in /root/down and the remote site was ftp.foo.com you'd

Contents of .netrc
machine ftp.foo.com
login joe.user
pass password

Then, in your script, let's say autofetch.sh you'd have:

ftp << EOF
open ftp.foo.com
cd /etc/
lcd /root/down
get test.sh


Now, you've got a scripted ftp session from within FreeBSD. As long as the
servernames in the script and .netrc match, ftp will use the info from
.netrc to make the connection. Of course, you'd want to make certain that
the .netrc file is NOT world readable. Perhaps not even group readable if
there are other users of the system.

Hope it helps.


Micheal Patterson
TSG Network Administration

Confidentiality Notice:  This e-mail message, including any attachments, is
for the sole use of the intended recipient(s) and may contain confidential
and privileged information. Any unauthorized review, use, disclosure or
distribution is prohibited. If you are not the intended recipient, please
contact the sender by reply e-mail and destroy all copies of the original

[EMAIL PROTECTED] mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to