Discussioni sul sistema operativo Linux
 

EXPECT

Smith 15 Giu 2015 16:23
Ciao a tutti,
volevo chiedervi un consiglio su come procedere con la creazione di uno
script che mi permetta di loggarmi su due diversi server in una rete locale.
Il primo con accesso ssh e l'altro con telnet.
Qui di seguito riporto lo script che ho creato, che avviandolo non mi
permette di accedere al secondo server, ma si limita a farmi loggare
solo sul primo con ssh.
Potete aiutarmi?
Grazie


cat -n fileexpect.sh


1 #!/usr/bin/expect -f
2 spawn ssh pippo@10.10.10.114
3 expect "password: "
4 send "pluto\r"
5 interact
6 spawn telnet ciccio
7 expect "Username: "
8 send "tasto\r"
9 expect "Password: "
10 send "premuto\r"
11 interact
Andrea D'Amore 16 Giu 2015 10:09
On 2015-06-15 14:23:16 +0000, Smith said:

> volevo chiedervi un consiglio su come procedere con la creazione di uno
> script che mi permetta di loggarmi su due diversi server in una rete
> locale.
> Il primo con accesso ssh e l'altro con telnet.
> Qui di seguito riporto lo script che ho creato, che avviandolo non mi
> permette di accedere al secondo server, ma si limita a farmi loggare
> solo sul primo con ssh.
> Potete aiutarmi?

Secondo me il problema è legato alla seconda chiamata spawn che cerca
di creare un processo e restituire l'id all'interprete tcl (expect), ma
expect sta girando sulla macchina iniziale e non su pippo. Questo è
assolutamente a naso dato che non hai incollato la parte utile per
diagnosticare il problema, cioè l'output e l'errore che ottieni.

Perché ti colleghi all'host pippo e poi fai telnet su ciccio?

Perché non usi i meccanismi usuali (chiave pubblica) per accedere a
pippo con ssh e da lì lanciare uno script expect che faccia telnet?
Quello che ottieni è qualcosa come

ssh pippo fileexpect

che puoi a sua volta raggruppare in uno script o alias sulla tua macchina.

A naso sembra un problema XY, che risultato vuoi ottenere in realtà?


--
Andrea
Smith 16 Giu 2015 14:30
Il 16/06/2015 10:09, Andrea D'Amore ha scritto:
> On 2015-06-15 14:23:16 +0000, Smith said:

> Secondo me il problema è legato alla seconda chiamata spawn che cerca di
> creare un processo e restituire l'id all'interprete tcl (expect), ma
> expect sta girando sulla macchina iniziale e non su pippo. Questo è
> assolutamente a naso dato che non hai incollato la parte utile per
> diagnosticare il problema, cioè l'output e l'errore che ottieni.

Non mi da nessun errore.
Riesco ad accedere a pippo e basta.

> Perché ti colleghi all'host pippo e poi fai telnet su ciccio?

pippo è una macchina ponte e per accedere a ciccio devo per forza
loggarmi su di essa.

> A naso sembra un problema XY, che risultato vuoi ottenere in realtà?

Vorrei accedere su ciccio lanciare un comando
Andrea D'Amore 16 Giu 2015 15:30
On 2015-06-16 12:30:33 +0000, Smith said:

> Non mi da nessun errore.
> Riesco ad accedere a pippo e basta.

Secondo me quando dai 'exit' al collegamento ssh su pippo poi expect
procede con l'esecuzione e lancia telnet. E dico "secondo me" perché
l'ho appena provato ed effettivamente si comporta così.

> pippo è una macchina ponte e per accedere a ciccio devo per forza
> loggarmi su di essa.

Tu nascondi delle informazioni (pensando magari che non siano utili) ma
questo non permette di aiutarti.
Inizialmente hai scritto:

>>> loggarmi su due diversi server in una rete locale.

e con questa premessa il suggerimento corretto è: lancia telnet dalla
prima macchina verso l'host ciccio.

>> A naso sembra un problema XY, che risultato vuoi ottenere in realtà?
> Vorrei accedere su ciccio lanciare un comando

Ok, ma così lasci le cose come prima. Il mio suggerimento già l'ho dato.

--
Andrea
Smith 17 Giu 2015 10:53
Il 16/06/2015 15:30, Andrea D'Amore ha scritto:
> On 2015-06-16 12:30:33 +0000, Smith said:
>
>> Non mi da nessun errore.
>> Riesco ad accedere a pippo e basta.
>
> Secondo me quando dai 'exit' al collegamento ssh su pippo poi expect
> procede con l'esecuzione e lancia telnet. E dico "secondo me" perché
> l'ho appena provato ed effettivamente si comporta così.

Non riesco ad accedere anche digitando "exit" :-(

>> pippo è una macchina ponte e per accedere a ciccio devo per forza
>> loggarmi su di essa.
>
> Tu nascondi delle informazioni (pensando magari che non siano utili) ma
> questo non permette di aiutarti.
> Inizialmente hai scritto:
>
>>>> loggarmi su due diversi server in una rete locale.

Non nascondo niente. I due server sono in una rete locale.
Devo accedere dalla rete pubblica con ssh e poi in telnet sull'altra
macchina.


>>> A naso sembra un problema XY, che risultato vuoi ottenere in realtà?
>> Vorrei accedere su ciccio lanciare un comando

Il risultato che voglio ottenere è di accedere all'ultima macchina e
lanciare un comando e loggarlo.

Spero di esserti stato di aiuto nella richiesta di aiuto.

Grazie

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Discussioni sul sistema operativo Linux | Tutti i gruppi | it.comp.os.linux.sys | Notizie e discussioni linux | Linux Mobile | Servizio di consultazione news.