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.