Linux, FreeBSD, Juniper, Cisco / Network security articles and troubleshooting guides
https://forum.ivorde.com/

How to use ftpproxy in a unix script
https://forum.ivorde.com/how-to-use-ftpproxy-in-a-unix-script-t19772.html
Page 1 of 1

Author:  nikonjd [ Fri Feb 20, 2015 1:36 pm ]
Post subject:  How to use ftpproxy in a unix script

My apologies if this goes in twice.

We have a client who only uses ftp for file transfers. On our Unix server I can use the following at the command line and I can access the client ftp server. How can I use this in a script?

ftp ftpproxy <enter>
userid@host <enter>
password <enter>

Author:  mandrei99 [ Sat Feb 21, 2015 7:15 pm ]
Post subject:  Re: How to use ftpproxy in a unix script

Hi,

Have you checked “expect” interpreter ? You can use it to automate authentication system that require human interraction.

Here’s an example to automat FTP login with this “expect”:

Expect installation under Debian Linux


Code:
$ sudo apt-get install expect
$  which expect
/usr/bin/expect

Automate FTP login with expect script


Code:
$ vim auto-ftp.sh
#!/usr/bin/expect

spawn ftp ftp.domain.com
expect -re "Name \(.*\):"
send "sombody\r"
expect "Password:"
send "password\r"
expect "ftp>”


Few notes on above ftp script:
- you need to send the linux new line feed (the ENTER) character ‘\r’ at the end of every command.
- you can further customize it to upload or download files from the ftp server automatically:
Code:
send “get 1MBfile\r”
expect "ftp>"
send "bye\r"
interact

Quoting expect documentation:
Quote:
Interact is an Expect command which gives control of the current process to the user, so that keystrokes are sent to the current process, and the stdout and stderr of the current process are returned.


Then to run the auto ftp script:
Code:
$ expect auto-ftp.sh
spawn ftp ftp.domain.com
Connected to ftp.domain.com.
220 vsftpd
Name (ftp.domain.com:root): sombody
331 Password required for sombody
Password:
230 User sombody logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get 1MBfile
local: 1MBfile remote: 1MBfile
200 PORT command successful
150 Opening BINARY mode data connection for 1MBfile (1000000 bytes)
bye
226 Transfer complete
1000000 bytes received in 12.52 secs (78.0 kB/s)
ftp> bye
221 Goodbye.

Author:  nikonjd [ Sat Feb 21, 2015 8:57 pm ]
Post subject:  Re: How to use ftpproxy in a unix script

Thanks! This works as well
ftp -vn <<EOF
open ftpproxy
userid@host password
cd /wherever/the/file/is
get file
close
EOF

Author:  mandrei99 [ Sun Feb 22, 2015 4:54 am ]
Post subject:  Re: How to use ftpproxy in a unix script

Good that it works for you. It does not for me on BSD / MAC ftp.

Page 1 of 1 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/