PDA

View Full Version : Script connessione telnet


alyas4
22-07-2008, 17:48
Salve, vorrei fare uno script che mi colleghi al server pop di posta ma usando questo script mi caccia fuori appena dopo avermi chiesto la password...

{
sleep 1
echo "user $user"
sleep 1
echo "pass $pass"
} | telnet $server $port

mi hanno detto che potrebbeessere problema di echo che inserisce caratteri non validi o di codifica ma non so come fare... Help!!:mc: :mc:

Gimli[2BV!2B]
22-07-2008, 21:57
Da quel che so per fare bene lavori di questo tipo, usualmente si usa expect (http://http://en.wikipedia.org/wiki/Expect).

Per esempio questa è la versione telnet di un mio vecchio script che faceva dei lavoretti nel modem:
#!/usr/bin/expect

set MODEM 192.168.1.1
set LOGIN utente_telnet_modem
set PWD PASSWORD
set SHELL_EXIT exit

# Apro una sessione telnet ed aspetto la richiesta dell'username.
spawn telnet $MODEM
expect "login:"
# Invio l'utente ed aspetto la richiesta della password.
send $LOGIN\r
expect "Password:"
# Invio la password ed aspetto il prompt.
send $PWD\r
expect "#"

# ...comandi...

send $SHELL_EXIT\r

expect eof

alyas4
23-07-2008, 06:47
ma rimane un semplice script? cioè lo chiamo sempre "qualcosa.sh"?
A dire il vero avevo già visto qualcosa del genere, ma l'istruzione
expect "login:"
a prima vista dovrebbe attendere una fantomatica richiesta di login che con il server pop non c'è... cioè deve essere l'utente a scrivere
USER nomeutente
pensi che posso funzionare comunque?

alyas4
23-07-2008, 14:45
ora riesco a farlo collegare, ma io vorrei fare un ciclo che mi scandisce tutte le mail che ci sono... ho googolato un po' ma non ho trovato niente sui costrutti dei cicli in expect, ho anche provato a lanciare uno script normale con
spawn /bin/bash abc.sh
ma niente...
qualcuno ha qualche pagina di riferimento o una soluzione?

Gimli[2BV!2B]
23-07-2008, 20:51
Cicli:
set no_of_cycles 10

for { set cycle 0 } { $cycle < $no_of_cycles } {incr cycle } {
# corpo del for
}

set count 0

while { $count < 1000 } {
# corpo del while
incr count
}

Esempi utili. (http://expect.nist.gov/scripts/)
Nella pagina ufficiale c'è un sacco di roba. (http://expect.nist.gov/)
Non scordiamoci di autoexpect... (http://www.tcl.tk/man/expect5.31/autoexpect.1.html)

Lo spawn con bash non l'ho proprio capito...