script/expect

Alexandros Papadopoulos apapadop at cmu.edu
Tue Feb 11 08:26:02 EET 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Χαιρετώ()

Προσπαθώ να φτιάξω ένα scriptάκι που θα διαβάζει IP's από ένα αρχείο, 
και για την κάθε IP θα κάνει τα εξής:

script $IP.txt
telnet $IP
^] και μετά quit
^D (για να σταματάει το script $IP.txt)

...και μετά θα συνεχίζει στην επόμενη IP.

Έχω μπλεχτεί λίγο (έως τελείως) με το expect script. Βασικά δοκιμάζω μια 
απλή περίπτωση: Καθαρό expect script, όχι embedded μέσα σε bash script 
(όπως φαντάζομαι το τελικό αποτέλεσμα):

#!/usr/bin/expect -f
set IP 66.192.0.154
spawn $env(SHELL)
send "script $IP.txt\r" #κατέγραφε τα πάντα στο αρχείο 66.192.0.154.txt
expect "Script started, file is $IP.txt\r"
send "telnet $IP\r" #telnet στη 66.192.0.154
expect "login: "
send "^]" #abort session
expect "telnet> "
send "q\r" #quit telnet
expect "Connection closed.\r"
send "^D" #κλείσε το script
expect "Script done"
send "^D" #κλείσε το expect script
expect eof

...αλλά δε δουλεύει! Ξεκινάει το script file με το σωστό filename 
(==$IP.txt), αλλά μετά μου φαίνεται ότι στέλνει το telnet $IP στην 
οθόνη μου και όχι στο shell, με αποτέλεσμα να μην ανοίγει telnet 
session (netstat/ps δεν βλέπω τίποτα)

Το output όπως φαίνεται στην οθόνη:

[alex at helios ~]$ ./script.exp
spawn /bin/bash
script 66.192.0.154.txt
[alex at helios ~]$ script 66.192.0.154.txt
Script started, file is 66.192.0.154.txt
telnet 66.192.0.154
[alex at helios ~]$ Found login
[alex at helios ~]$ Script done, file is 66.192.0.154.txt

...τα περιεχόμενα του script δεν είναι το τι έχει κάνει το expect 
(επειδή κάνει spawn άλλο shell;)

[alex at helios ~]$ cat 66.192.0.154.txt
Script started on Tue Feb 11 01:17:31 2003
[alex at helios ~]$
[alex at helios ~]$
Script done on Tue Feb 11 01:18:01 2003
[alex at helios ~]$

...και τι δείχνει το ps:

\_ /bin/bash
	\_ /usr/bin/expect -f ./script.exp
		\_ /bin/bash
			 \_ script 66.192.0.154.txt
		 		\_ script 66.192.0.154.txt
		 			\_ bash -i

Καμμιά ιδέα;

- -Α
- --
http://andrew.cmu.edu/~apapadop/pub_key.asc
3DAD 8435 DB52 F17B 640F  D78C 8260 0CC1 0B75 8265
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+SJcigmAMwQt1gmURAnAyAJ9SrGps3sySeFn0OzGUz06XZvn/lwCfVS18
9XVrXgONokWMHiUZvGkg3MU=
=W1Ij
-----END PGP SIGNATURE-----




More information about the Linux-greek-users mailing list